C# 2008 SP1
我正在使用下面的代码:
dt.ReadXml("%AppData%\\DateLinks.xml");
然而,我得到一个异常,指向我的应用程序正在运行的位置:
找不到路径的一部分
D: \ SubVersionProjects \ CatDialer \ bin \ \项目调试\ % AppData % \ DateLinks.xml”。
我认为%AppData%应该找到相对路径。当我开始|运行|%AppData% windows资源管理器带我到那个目录。
我不能输入完整的路径,因为每个客户端机器上的用户是不同的。
AppData⇝本地aka (C:\Users\<user>\AppData\Local):
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
AppData⇝漫游aka (C:\Users\<user>\AppData\漫游):
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
此外,了解以下信息可能会很方便:
programfiles -用于程序文件X64文件夹
Environment.SpecialFolder。ProgramFilesX86 -用于程序文件X86文件夹
查看完整的列表。
要获取AppData目录,最好使用GetFolderPath方法:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
(如果不存在,必须添加使用系统)。
%AppData%是一个环境变量,它们不会在. net中的任何地方自动展开,尽管您可以显式地使用环境。方法来执行此操作。然而,我仍然强烈建议你使用GetFolderPath,因为Johannes Rössel在评论中指出,%AppData%在某些情况下可能无法设置。
最后,创建如下示例所示的路径:
var fileName = Path.Combine(Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData), "DateLinks.xml");