我有一个dotnet核心应用程序,我想获取本地%Appdata%目录的路径。 dotnet核心应用程序是从之前安装的Windows服务启动的。 我使用了this question下描述的方法,但它们都返回了错误的路径。
而不是
C:\用户\ MYUSER \应用程序数据\漫游\ MyApplication的\ file.txt的
我得到了
C:\ Windows \ ServiceProfiles \本地服务\应用程序数据\漫游\ MyApplication的\ file.txt的
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "MyApplication", "file.txt")
Path.Combine(Environment.GetEnvironmentVariable("APPDATA"), "MyApplication", "file.txt")
Path.Combine(Environment.ExpandEnvironmentVariables("%AppData%"), "MyApplication", "file.txt")
所有方法都遗憾地回到了错误的道路上。如何使用Windows服务启动应用程序时,如何获得正确的%AppData%路径?
答案 0 :(得分:3)
这些电话不会返回错误的路径。它们返回运行应用程序的用户的AppData\Roaming
路径,即LocalService用户。
如果要访问其他用户的AppData,请将服务配置为在要读取或写入其配置文件的用户下运行,或者选择其他目录并确保该服务具有以下权限:写在那里 - 但你真的不应该写在另一个用户的目录中。