获取应用程序数据目录的路径有几种可能的方法:
使用%APPDATA%
环境变量
打电话SHGetFolderPath
给CSIDL_APPDATA
从程序中获取路径的最佳方法是什么?使用环境变量时有任何问题吗?
在XP,Vista和即将推出的版本中哪种方法最安全?
我建议调用SHGetFolderPath()
是最合适,最便携的方法; 替代方案,例如读取环境变量,或者(更糟糕的是)尝试从注册表中提取它可能会在未来绊倒你.
Raymond Chen有一篇文章解释了为什么从注册表中提取这样的路径是一个坏主意.
string appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
您需要使用GetFolderPath方法获取实际路径,因为Environment.SpecialFolder.ApplicationData只是一个枚举.