C#中擷取系統內容變數需要用到Environment Class。其中提供了有關當前環境和平台的資訊以及操作它們的方法。該類不能被繼承。
以下代碼得到%systemdrive%的值,即“C:”
string sPath = Environment.GetEnvironmentVariable("systemdrive")
string sPath = Environment.GetEnvironmentVariable("systemdrive");Console.WriteLine(sPath);//C:
以下是MSDN上Environment Class的Sample code。
http://msdn.microsoft.com/en-us/library/system.environment.aspx
以下代碼列出了當前系統的環境資訊。
// Sample for Environment class summaryusing 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: "); IDictionaryenvironmentVariables = 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 TEXTGetCommandLineArgs: env0, ARBITRARY, TEXTCurrentDirectory: C:\Documents and Settings\!---OMITTED---!ExitCode: 0HasShutdownStarted: FalseMachineName: !---OMITTED---!NewLine: first line second line third lineOSVersion: Microsoft Windows NT 5.1.2600.0StackTrace: ' at System.Environment.GetStackTrace(Exception e) at System.Environment.GetStackTrace(Exception e) at System.Environment.get_StackTrace() at Sample.Main()'SystemDirectory: C:\WINNT\System32TickCount: 17995355UserDomainName: !---OMITTED---!UserInteractive: TrueUserName: !---OMITTED---!Version: !---OMITTED---!WorkingSet: 5038080ExpandEnvironmentVariables: My system drive is C: and my system root is C:\WINNTGetEnvironmentVariable: My temporary directory is C:\DOCUME~1\!---OMITTED---!\LOCALS~1\Temp.GetEnvironmentVariables: !---OMITTED---!GetFolderPath: C:\WINNT\System32GetLogicalDrives: A:\, C:\, D:\*/