【问题标题】:Getting path to %AppData% returns wrong value获取 %AppData% 的路径返回错误值
【发布时间】:2018-05-28 16:06:17
【问题描述】:

我有一个 dotnet 核心应用程序,我想获取本地 %Appdata% 目录的路径。 dotnet 核心应用程序从之前安装的 Windows 服务启动。 我使用了this question 下描述的方法,但它们都返回了错误的路径。

代替

C:\Users\MyUser\AppData\Roaming\MyApplication\file.txt

我明白了

C:\WINDOWS\ServiceProfiles\LocalService\AppData\Roaming\MyApplication\file.txt

1。 Environment.SpecialFolder.ApplicationData

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "MyApplication", "file.txt")

2。 Environment.GetEnvironmentVariable("APPDATA")

Path.Combine(Environment.GetEnvironmentVariable("APPDATA"), "MyApplication", "file.txt")

3。 Environment.ExpandEnvironmentVariables("%AppData%")

Path.Combine(Environment.ExpandEnvironmentVariables("%AppData%"), "MyApplication", "file.txt")

遗憾的是,所有方法都返回了错误的路径。当应用程序使用 Windows 服务启动时,如何获得正确的 %AppData% 路径?

【问题讨论】:

    标签: asp.net-core path


    【解决方案1】:

    这些调用不会返回错误的路径。它们返回运行应用程序的用户的AppData\Roaming 路径,即LocalService 用户。

    如果您想访问其他用户的 AppData,则将服务配置为在您要读取或写入其配置文件的用户下运行,或者选择不同的目录并确保服务有权在此处写入 - 但是你真的不应该写在另一个用户的目录中。

    【讨论】:

      猜你喜欢
      • 2018-09-08
      • 2010-10-26
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 2012-04-25
      • 2022-12-12
      • 1970-01-01
      相关资源
      最近更新 更多