获取%AppData%的路径返回错误的值

时间:2018-05-28 08:01:44

标签: asp.net-core path

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

而不是

  

C:\用户\ MYUSER \应用程序数据\漫游\ MyApplication的\ file.txt的

我得到了

  

C:\ Windows \ ServiceProfiles \本地服务\应用程序数据\漫游\ 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%路径?

1 个答案:

答案 0 :(得分:3)

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

如果要访问其他用户的AppData,请将服务配置为在要读取或写入其配置文件的用户下运行,或者选择其他目录并确保该服务具有以下权限:写在那里 - 但你真的不应该写在另一个用户的目录中。