C# 获取 %AppData% 的路径

标签 c# .net path

C# 2008 SP1

我正在使用下面的代码:

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

但是,我收到一个指向我的应用程序运行位置的异常:

Could not find a part of the path 'D:\Projects\SubVersionProjects\CatDialer\bin\Debug\%AppData%\DateLinks.xml'.

我认为 %AppData% 应该找到相对路径。当我进入 Start|Run|%AppData% 时,windows 资源管理器将我带到该目录。

我无法输入完整路径,因为每个客户端计算机上的用户都不同。

最佳答案

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

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

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

%AppData% 是一个环境变量,它们不会在 .NET 中的任何地方自动扩展,尽管您可以显式使用 Environment.ExpandEnvironmentVariable这样做的方法。但是,我仍然强烈建议您使用 GetFolderPath,因为正如 Johannes Rössel 在评论中指出的那样,在某些情况下可能不会设置 %AppData%

最后,创建示例中所示的路径:

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

关于C# 获取 %AppData% 的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/867485/

相关文章:

c# - 在不创建新的 Edmx 文件的情况下在 EF 4 上映射外键

python - 当站点包位于/usr/local 时,何时/如何从/usr 更改python sys.prefix?

c# - 为 iOS Unity 构建时出现文件路径问题

java - 获取 JAR 文件的位置

c# - 尝试安装没有强名称的程序集

.net - 如何在StackExchange.Redis中使用Redis群集?

c# - 将 C# 6.0 默认属性值转换为 C# 5.0

asp.net - ValidationAttribute 类的 RequiresValidationContext 属性有什么用?

c# - 在 DataGridView 中选择/取消选择行

c# - 如何使用 EmguCV 设置网络摄像头属性?