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



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

而不是

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

我得到

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

1.环境.特殊文件夹.应用程序数据

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% 路径?

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

如果要访问其他用户的 AppData,请将服务配置为在要读取或写入其配置文件的用户下运行,或者选择其他目录并确保该服务有权写入该目录 - 但您真的不应该写入其他用户的目录。

相关内容

  • 没有找到相关文章

最新更新