一尘不染

C#获取%AppData%的路径

c#

C#2008 SP1

我正在使用以下代码:

dt.ReadXml("%AppData%\\DateLinks.xml");

但是,我遇到一个异常,该异常指向我的应用程序从以下位置运行:

找不到路径“ D:\ Projects \ SubVersionProjects \ CatDialer \ bin \ Debug
\%AppData%\ DateLinks.xml”的一部分。

我以为%AppData%应该找到相对路径。当我去的时候,Start|Run|%AppData%Windows资源管理器会将我带到该目录。

由于每台客户端计算机上的用户都不相同,因此无法输入完整路径。


阅读 408

收藏
2020-05-19

共1个答案

一尘不染

要获取 AppData 目录,最好使用以下GetFolderPath方法:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

using System如果不存在,则必须添加)。

%AppData%是一个环境变量,尽管您可以显式使用此Environment.ExpandEnvironmentVariable方法,但它们不会在.NET中自动扩展。我仍然强烈建议您使用GetFolderPath,因为正如约翰内斯·罗素(JohannesRössel)在评论中指出的那样,%AppData%在某些情况下可能不会设置。

最后,按照示例所示创建路径:

var fileName = Path.Combine(Environment.GetFolderPath(
    Environment.SpecialFolder.ApplicationData), "DateLinks.xml");
2020-05-19