有獲取應用程序路徑數據目錄的幾種可能的方式:使用%APPDATA%
環境變量 獲取「應用程序數據」目錄路徑的最佳途徑?
SHGetFolderPath
- 與
CSIDL_APPDATA
什麼是獲取路徑的最佳途徑從一個程序內?當我使用環境變量時是否有任何問題?
哪種方法在XP,Vista和即將推出的版本中最安全?
有獲取應用程序路徑數據目錄的幾種可能的方式:使用%APPDATA%
環境變量 獲取「應用程序數據」目錄路徑的最佳途徑?
SHGetFolderPath
CSIDL_APPDATA
什麼是獲取路徑的最佳途徑從一個程序內?當我使用環境變量時是否有任何問題?
哪種方法在XP,Vista和即將推出的版本中最安全?
我建議致電SHGetFolderPath()
是最合適的,便攜的方法;諸如讀取環境變量或者(更糟糕的)嘗試從註冊表中提取它的替代方法可能會在未來使您受到影響。
Raymond Chen has an article解釋了爲什麼從註冊表中拉出這樣的路徑是一個壞主意。在Python
string appDataPath = Environment.SpecialFolder.ApplicationData;
如果你在.NET編程,你可以使用這個在ctypes.windll.shell32.SHGetFolderPathW
返回一個unicode字符串的Unicode文件路徑的情況下,而os.environ['APPDATA']
返回一個字節的字符串。
SpecialFolder.ApplicationData是一個枚舉,而不是路徑。使用Environment.GetFolderPath,如@ jMM的答案中所示 – JulianM 2010-09-02 02:49:28
一個重要的區別:
string appDataPath =
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
你需要使用GetFolderPath方法獲得實際的路徑Environment.SpecialFolder.ApplicationData只是一個枚舉。
如果有人想知道,在Ruby中的命令將如下所示:
appDataPath = ENV['APPDATA']
我讀了一篇文章,我之前我做了什麼文章告訴我*不*做:) – 2009-01-31 16:54:52