Windows 7 не позволяет мне редактировать файлы в папке Common Application Data - PullRequest
9 голосов
/ 15 октября 2010

Я хочу сохранить некоторые файлы и отредактировать их для своего программного обеспечения в общих Прикладных данных под Windows 7.

Я не знаю, почему Windows 7 не позволяет моему программному обеспечению изменять файлы, если я не запускаю их какАдминистратор.

Где я могу хранить свои файлы, чтобы не требовалось разрешение администратора?

Ответы [ 5 ]

6 голосов
/ 16 октября 2010

Вы должны хранить данные своего приложения в подпапке под Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);.Обратите внимание, что эта папка относится к конкретному пользователю.

Пользователи без прав администратора не имеют разрешения на запись в папку CommonApplicationData, поскольку эта папка не принадлежит конкретным пользователям.Вы также можете сохранить свои настройки с помощью класса настроек.Для этого добавьте новый элемент в свой проект, выберите «Файл настроек».Это подходит для основных настроек, таких как строки и числа.

3 голосов
/ 15 октября 2010

Некоторые папки ограничены, начиная с Windows 7, к этим папкам нельзя прикасаться, если вы не устанавливаете, удаляете или исправляете.Пожалуйста, смотрите мой ответ, который вы приняли ранее сегодня , это точно такой же случай.

Если у вас есть несколько приложений, которым нужно редактировать одни и те же файлы, они должны храниться в

Environment.GetFolderPath( Environment.SpecialFolder.CommonApplicationData)

System.Environment.SpecialFolder.CommonProgramFiles (папка, в которую, я думаю, вы пытаетесь написать), доступна только для чтения, если у вас нет прав.

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

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

3 голосов
/ 15 октября 2010

Вам необходимо использовать повышение прав для изменения этих файлов из-за контроля доступа пользователя.Посмотрите эту статью MSDN для получения более подробной информации: Статья MSDN о UAC

Если вы не уверены, как это сделать в C #, вот статья: Статья о запросевысота в C #

0 голосов
/ 30 июля 2013

Я столкнулся с этой же проблемой, но с помощью Inno Setup Installer у меня есть параметр с именем «Permissions», в котором я устанавливаю значение «users-full», чтобы создать файл в папке приложения в общих данных приложения с помощьюполный контроль над всеми пользователями этого файла.

0 голосов
/ 16 октября 2010

Это опция безопасности, включенная по умолчанию в Windows 7, а именно UAC (контроль учетных записей). Вам следует изменить свой дизайн (написать где-нибудь еще) или отключить UAC из панели управления \ Учетные записи пользователей.

...