2015-03-26 4 views
0

У меня есть два проекта:Как сохранить файл в AppData Administrator пользователя

  1. Форма для Windows
  2. службы Windows

Windows, форма проекта утилита конфигурации, где сохраняет data.xml в

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

Такая же форма Windows приложение может установить Windows Service, но служба Windows всегда устанавливается с использованием учетных данных Administrator.

Когда моя конфигурация окна формы экономит data.xml его сохраненную в мой текущий пользователь AppData папку и мне нужно в моем администратора AppData папку, потому что тогда мой Windows Service не сможет его найти.

Любой ключ о том, как я могу получить:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 

Для моей учетной записи администратора?

+0

Как насчет отправки ваших данных конфигурации в вашу службу? Таким образом, он может обновлять свои внутренние переменные и сохранять их в файл, к которому он может получить доступ для сохранения. – EZI

+0

У вас нет доступа на запись. – SLaks

+0

@ EZI, как я могу это сделать? – VAAA

ответ

0

Любой ключ о том, как я могу получить:

Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData); Для учетной записи администратора?

Вы можете использовать SHGetKnownFolderPath для извлечения пути к папке для определенного пользователя.

Однако по умолчанию у других пользователей не будет доступа к этой папке. Это приведет к ослаблению вашей модели безопасности, если вы разрешите доступ для этой цели.

SpecialFolder.CommonApplicationData

, кажется, соответствует, что точное назначение.

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

См Environment.SpecialFolder Enumeration

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

Смежные вопросы