Получение пути к% AppData% возвращает неправильное значение - PullRequest
0 голосов
/ 28 мая 2018

У меня есть основное приложение dotnet, и я хочу получить путь к локальному каталогу% Appdata%.Основное приложение dotnet запускается из ранее установленной службы Windows.Я использовал методы, описанные в этом вопросе , но все они возвращают неправильный путь.

Вместо

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")

Все методы, к сожалению, вернули неправильный путь.Как я могу получить правильный путь% AppData%, когда приложение запускается с помощью службы Windows?

1 Ответ

0 голосов
/ 28 мая 2018

Эти вызовы не возвращают неправильный путь.Они возвращают AppData\Roaming путь пользователя, под которым запущено приложение, а именно пользователя LocalService.

Если вы хотите получить доступ к AppData другого пользователя, то либо настройте службу для запуска под пользователем, профиль которого выхотите читать или записывать, или выбрать другой каталог и убедиться, что у службы есть разрешения на запись в него, но вам действительно не следует писать в каталоги другого пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...