2013-02-16 15 views
0

我嘗試使用下面的語句GetEnvironmentVariable( 「CSIDL_COMMON_APPDATA」)返回null

System.Environment.GetEnvironmentVariable("CSIDL_COMMON_APPDATA"); 

我有望獲得 「C:\ ProgramData \」 來獲得EnvironmentVariable 「CSIDL_COMMON_APPDATA」 回來。但我得到空 我在Windows 7 32位機器上運行我的C#程序。請幫忙。

+0

你檢查,如果在環境中存在這個變量?打開一個cmd提示符並嘗試它,或者先列出代碼中所有可用的env vars – allen 2013-02-16 02:08:04

回答

6

你距離正確的千里之外。它不是一個環境變量,它是傳遞給SHGetFolderPath()winapi函數的常量。你只能用母語寫這種代碼。在C#中,您使用Environment.GetFolderPath()代替:

string path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData); 
Console.WriteLine(path); 

輸出:

C:\ProgramData