Environment Class
.NET Framework 4.5
Provides information about, and means to manipulate, the current environment and platform. This class cannot be inherited.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
The Environment type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() | CommandLine | Gets the command line for this process. |
![]() ![]() | CurrentDirectory | Gets or sets the fully qualified path of the current working directory. |
![]() ![]() ![]() | CurrentManagedThreadId | Gets a unique identifier for the current managed thread. |
![]() ![]() | ExitCode | Gets or sets the exit code of the process. |
![]() ![]() ![]() ![]() | HasShutdownStarted | Gets a value indicating whether the common language runtime (CLR) is shutting down. |
![]() ![]() | Is64BitOperatingSystem | Determines whether the current operating system is a 64-bit operating system. |
![]() ![]() | Is64BitProcess | Determines whether the current process is a 64-bit process. |
![]() ![]() | MachineName | Gets the NetBIOS name of this local computer. |
![]() ![]() ![]() ![]() ![]() | NewLine | Gets the newline string defined for this environment. |
![]() ![]() ![]() | OSVersion | Gets an OperatingSystem object that contains the current platform identifier and version number. |
![]() ![]() ![]() ![]() ![]() | ProcessorCount | Gets the number of processors on the current machine. |
![]() ![]() | StackTrace | Gets current stack trace information. |
![]() ![]() | SystemDirectory | Gets the fully qualified path of the system directory. |
![]() ![]() | SystemPageSize | Gets the number of bytes in the operating system's memory page. |
![]() ![]() ![]() ![]() ![]() | TickCount | Gets the number of milliseconds elapsed since the system started. |
![]() ![]() | UserDomainName | Gets the network domain name associated with the current user. |
![]() ![]() | UserInteractive | Gets a value indicating whether the current process is running in user interactive mode. |
![]() ![]() | UserName | Gets the user name of the person who is currently logged on to the Windows operating system. |
![]() ![]() ![]() | Version | Gets a Version object that describes the major, minor, build, and revision numbers of the common language runtime. |
![]() ![]() | WorkingSet | Gets the amount of physical memory mapped to the process context. |
| Name | Description | |
|---|---|---|
![]() ![]() | Exit | Terminates this process and gives the underlying operating system the specified exit code. |
![]() ![]() | ExpandEnvironmentVariables | Replaces the name of each environment variable embedded in the specified string with the string equivalent of the value of the variable, then returns the resulting string. |
![]() ![]() ![]() | FailFast(String) | Immediately terminates a process after writing a message to the Windows Application event log, and then includes the message in error reporting to Microsoft. |
![]() ![]() ![]() | FailFast(String, Exception) | Immediately terminates a process after writing a message to the Windows Application event log, and then includes the message and exception information in error reporting to Microsoft. |
![]() ![]() | GetCommandLineArgs | Returns a string array containing the command-line arguments for the current process. |
![]() ![]() | GetEnvironmentVariable(String) | Retrieves the value of an environment variable from the current process. |
![]() ![]() | GetEnvironmentVariable(String, EnvironmentVariableTarget) | Retrieves the value of an environment variable from the current process or from the Windows operating system registry key for the current user or local machine. |
![]() ![]() | GetEnvironmentVariables() | Retrieves all environment variable names and their values from the current process. |
![]() ![]() | GetEnvironmentVariables(EnvironmentVariableTarget) | Retrieves all environment variable names and their values from the current process, or from the Windows operating system registry key for the current user or local machine. |
![]() ![]() ![]() | GetFolderPath(Environment.SpecialFolder) | Gets the path to the system special folder that is identified by the specified enumeration. |
![]() ![]() | GetFolderPath(Environment.SpecialFolder, Environment.SpecialFolderOption) | Gets the path to the system special folder that is identified by the specified enumeration, and uses a specified option for accessing special folders. |
![]() ![]() | GetLogicalDrives | Returns an array of string containing the names of the logical drives on the current computer. |
![]() ![]() | SetEnvironmentVariable(String, String) | Creates, modifies, or deletes an environment variable stored in the current process. |
![]() ![]() | SetEnvironmentVariable(String, String, EnvironmentVariableTarget) | Creates, modifies, or deletes an environment variable stored in the current process or in the Windows operating system registry key reserved for the current user or local machine. |
The following example demonstrates displays a list of information about the current environment.
// Sample for Environment class summary using System; using System.Collections; class Sample { public static void Main() { String str; String nl = Environment.NewLine; // Console.WriteLine(); Console.WriteLine("-- Environment members --"); // Invoke this sample with an arbitrary set of command line arguments. Console.WriteLine("CommandLine: {0}", Environment.CommandLine); String[] arguments = Environment.GetCommandLineArgs(); Console.WriteLine("GetCommandLineArgs: {0}", String.Join(", ", arguments)); // <-- Keep this information secure! --> Console.WriteLine("CurrentDirectory: {0}", Environment.CurrentDirectory); Console.WriteLine("ExitCode: {0}", Environment.ExitCode); Console.WriteLine("HasShutdownStarted: {0}", Environment.HasShutdownStarted); // <-- Keep this information secure! --> Console.WriteLine("MachineName: {0}", Environment.MachineName); Console.WriteLine("NewLine: {0} first line{0} second line{0} third line", Environment.NewLine); Console.WriteLine("OSVersion: {0}", Environment.OSVersion.ToString()); Console.WriteLine("StackTrace: '{0}'", Environment.StackTrace); // <-- Keep this information secure! --> Console.WriteLine("SystemDirectory: {0}", Environment.SystemDirectory); Console.WriteLine("TickCount: {0}", Environment.TickCount); // <-- Keep this information secure! --> Console.WriteLine("UserDomainName: {0}", Environment.UserDomainName); Console.WriteLine("UserInteractive: {0}", Environment.UserInteractive); // <-- Keep this information secure! --> Console.WriteLine("UserName: {0}", Environment.UserName); Console.WriteLine("Version: {0}", Environment.Version.ToString()); Console.WriteLine("WorkingSet: {0}", Environment.WorkingSet); // No example for Exit(exitCode) because doing so would terminate this example. // <-- Keep this information secure! --> String query = "My system drive is %SystemDrive% and my system root is %SystemRoot%"; str = Environment.ExpandEnvironmentVariables(query); Console.WriteLine("ExpandEnvironmentVariables: {0} {1}", nl, str); Console.WriteLine("GetEnvironmentVariable: {0} My temporary directory is {1}.", nl, Environment.GetEnvironmentVariable("TEMP")); Console.WriteLine("GetEnvironmentVariables: "); IDictionary environmentVariables = Environment.GetEnvironmentVariables(); foreach (DictionaryEntry de in environmentVariables) { Console.WriteLine(" {0} = {1}", de.Key, de.Value); } Console.WriteLine("GetFolderPath: {0}", Environment.GetFolderPath(Environment.SpecialFolder.System)); String[] drives = Environment.GetLogicalDrives(); Console.WriteLine("GetLogicalDrives: {0}", String.Join(", ", drives)); } } /* This example produces results similar to the following: (Any result that is lengthy or reveals information that should remain secure has been omitted and marked "!---OMITTED---!".) C:\>env0 ARBITRARY TEXT -- Environment members -- CommandLine: env0 ARBITRARY TEXT GetCommandLineArgs: env0, ARBITRARY, TEXT CurrentDirectory: C:\Documents and Settings\!---OMITTED---! ExitCode: 0 HasShutdownStarted: False MachineName: !---OMITTED---! NewLine: first line second line third line OSVersion: Microsoft Windows NT 5.1.2600.0 StackTrace: ' at System.Environment.GetStackTrace(Exception e) at System.Environment.GetStackTrace(Exception e) at System.Environment.get_StackTrace() at Sample.Main()' SystemDirectory: C:\WINNT\System32 TickCount: 17995355 UserDomainName: !---OMITTED---! UserInteractive: True UserName: !---OMITTED---! Version: !---OMITTED---! WorkingSet: 5038080 ExpandEnvironmentVariables: My system drive is C: and my system root is C:\WINNT GetEnvironmentVariable: My temporary directory is C:\DOCUME~1\!---OMITTED---!\LOCALS~1\Temp. GetEnvironmentVariables: !---OMITTED---! GetFolderPath: C:\WINNT\System32 GetLogicalDrives: A:\, C:\, D:\ */
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.


