С# сделать чтение/запись файлов из readonly - программирование
Подтвердить что ты не робот

С# сделать чтение/запись файлов из readonly

Если File.SetAttributes("C:\\myFile.txt", FileAttributes.ReadOnly); устанавливает файл как только для чтения, как мне установить его для чтения/записи, если мне нужно?

Я подозреваю, что это будет FileAttributes.Normal, но это изменит любые другие свойства файла? На сайте MSDN нет ужасно описательной заметки...

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

Спасибо

4b9b3361

Ответ 1

Чтобы удалить только атрибут ReadOnly, вы сделали бы что-то вроде этого:

File.SetAttributes("C:\\myfile.txt", File.GetAttributes("C:\\myfile.txt") & ~FileAttributes.ReadOnly);

Это приведет к удалению атрибута ReadOnly, но сохранит любые другие атрибуты, которые уже существуют в файле.

Ответ 2

File.SetAttributes заменяет ВСЕ атрибуты в файле.

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

например.

var attr = File.GetAttributes(path);

// set read-only
attr = attr | FileAttributes.ReadOnly;
File.SetAttributes(attr);

// unset read-only
attr = attr & ~FileAttributes.ReadOnly;
File.SetAttributes(attr);