Рекомендуемый способ записи в скрытый / только для чтения файл C # - PullRequest
1 голос
/ 17 февраля 2012

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

Я выполняю следующую процедуру:

  1. Проверьте, существует ли файл
  2. Удалите существующие атрибуты в файле, то есть скрытые и доступные только для чтения
  3. Завершить запись в файл
  4. Применить атрибуты (скрытые и только для чтения) обратно в файл

Я знаю, что это не рекомендуемый способ использования атрибутов файла и записи вскрытый файл.Есть ли лучший способ выполнить мою задачу?

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 17 февраля 2012

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

Самый простой способ запустить в контексте другого пользователя - нажать shift и щелкнуть правой кнопкой мыши по exe-файлу, выбрать «Run».как другой пользователь ".

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

Чтобы изменить текущую учетную запись «в середине процесса», вам нужно проделать дополнительную работу, найти хорошую статью на эту тему, например http://www.codeproject.com/Articles/4051/Windows-Impersonation-using-C.

0 голосов
/ 17 февраля 2012

Нет необходимости удалять скрытый атрибут.Однако я не знаю другого решения с только для чтения.

0 голосов
/ 17 февраля 2012

Как отмечает @Albin, правильный способ решения проблемы с доступом - это права доступа к файлу, а не атрибуты.

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

Обратите внимание, что скрытые и доступные только для чтения атрибуты могут быть отключены пользователем с достаточными привилегиями.И обычно любой может включить функцию «Показать скрытые файлы и папки» в Проводнике.

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