C#2008 SP1
我正在使用以下代码:
dt.ReadXml("%AppData%\\DateLinks.xml");
但是,我遇到一个异常,该异常指向我的应用程序从以下位置运行:
找不到路径“ D:\ Projects \ SubVersionProjects \ CatDialer \ bin \ Debug \%AppData%\ DateLinks.xml”的一部分。
我以为%AppData%应该找到相对路径。当我去的时候,Start|Run|%AppData%Windows资源管理器会将我带到该目录。
%AppData%
Start|Run|%AppData%
由于每台客户端计算机上的用户都不相同,因此无法输入完整路径。
要获取 AppData 目录,最好使用以下GetFolderPath方法:
GetFolderPath
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
(using System如果不存在,则必须添加)。
using System
%AppData%是一个环境变量,尽管您可以显式使用此Environment.ExpandEnvironmentVariable方法,但它们不会在.NET中自动扩展。我仍然强烈建议您使用GetFolderPath,因为正如约翰内斯·罗素(JohannesRössel)在评论中指出的那样,%AppData%在某些情况下可能不会设置。
Environment.ExpandEnvironmentVariable
最后,按照示例所示创建路径:
var fileName = Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData), "DateLinks.xml");