Как изменить файл в Program Files с Win7 (Права безопасности на каталог?) - PullRequest
0 голосов
/ 06 марта 2011

Я уже слышал вопросы об обходе этой функции безопасности Windows 7, но у меня есть НЕТ ЖЕЛАНИЯ . Мой вопрос касается настройки программы так, чтобы она имела «права доступа» к файлам в определенном каталоге.

C # Windows Forms, .NET 2010 Express

У меня есть программа, которая предназначена для чтения, записи и редактирования различных файлов, включая файлы данных профиля пользователя.

Теперь по разным причинам не все эти файлы будут существовать во время установки программы (я создал установщик MSI). Прежде всего, новый файл создается для каждого пользователя, и пользователи не известны во время установки. Я только что переключился на компьютер с Windows 7, и у меня был настоящий кошмар, когда я пытался обновить эти файлы во время выполнения.

Меня убеждают (в различных других поисках Q / A), что файлы, установленные MSI, будут «привязаны» к программе, и Windows позволит программе редактировать эти файлы без жалоб. Однако с тех пор, как я начал работать с Windows XP, я никогда не удосужился включить эти файлы конфигурации в MSI. Я хотел продолжить исследования, прежде чем все переделывать.

Вопрос 1: Это точно? Я никогда не видел, чтобы это прямо указывалось или спрашивалось. Установленные файлы MSI получат разрешение на чтение / запись в программе?

.

Итак, имея в виду этот фон, я хотел бы узнать, есть ли способ разрешить любой файл для CRUD-редактирования, если он остается в каталоге приложений, как определено MSI файл. Я готов определить специальные «разрешающие» каталоги или все, что требуется.

Другое (глупо-простое) решение - установить программу вне каталога Program Files, но это кажется неразумным.

Вопрос 2: Как настроить права доступа программы для разрешения файла CRUD, даже если он ограничен конкретным каталогом?

.

Спасибо, что поделились своими мыслями! ^ _ ^

1 Ответ

1 голос
/ 06 марта 2011

Вопрос 1 : Нет, это не правильно. В файле, установленном MSI, нет ничего особенного.

Вопрос 2 : Не пытайтесь записывать файлы настроек приложения в каталог Program Files. Вместо этого поместите их в CSIDL_COMMON_APPDATA - см. SHGetFolderPath.

Вы действительно должны попытаться избавиться от привычки ожидать записи в каталог Program Files в любое время, кроме времени установки. Вот почему система предоставляет различные другие специальные папки .

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