2013-05-31 11 views
1

У меня есть небольшая утилита Winform, разработанная в VS 2010 и C#. И создал настройку.Доступ к файлу запрещен при доступе к файлам программы

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

[ProgramFilesFolder] [Производитель] [ProductName]

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

+0

http://stackoverflow.com/questions/7288444/how-to-give-read-write-permissions-to-a-folder-during-installation-using-net –

+0

Поиск запуска приложения с правами администратора. http://stackoverflow.com/questions/7666408/how-to-request-administrator-permissions-when-the-program-starts –

+1

@FurqanAshraf Это почти никогда не правильный способ решить эту проблему. Программы, которые не нуждаются в правах администратора, не должны просить об этом, гораздо лучше исправить вашу программу, чтобы делать то, что вам нужно, без необходимости поднимать (например, изменять вашу программу для сохранения в нужном месте). Если вам нужно поднять это * желательно *, чтобы по-прежнему запускать вашу программу как более низкую привилегию и [только повышать, когда вам нужно выполнить задачу, требующую прав администратора) (http://stackoverflow.com/questions/573086/how -в-возвысить-привилегии только-, требуется, когда? RQ = 1). –

ответ

7

места вы должен для сохранения пользовательских данных находится в одном из следующих Environment.SpecialFolder мест

  • ApplicationData - каталог, который служит в качестве общего хранилища для конкретных приложений данных для текущего роумингу пользователь. Роуминг-пользователь работает на нескольких компьютерах в сети. Профиль роумингового пользователя хранится на сервере в сети и загружается в систему, когда пользователь входит в систему.
  • LocalApplicationData - Каталог, который служит в качестве общего репозитория для данных конкретных приложений, которые используются текущим, не-роуминговым пользователем.
  • CommonApplicationData - Каталог, который служит в качестве общего репозитория для данных конкретных приложений, используемых всеми пользователями.

Вы получаете путь, используя Enviorment.GetFolderPath

var savePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)), 
          "MyAppName"); 
//This should return the path %UserProfile%\Roaming\MyAppName\ 

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

+0

Спасибо за ответ. Как я могу просмотреть этот файл журнала. Я только что зарегистрировал несколько txt, но я не смог получить этот savePath. – Mask

+0

У меня теперь, я должен был создать этот каталог в первую очередь. Я использовал CommonApplicationData. – Mask

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