С# сделать чтение/запись файлов из readonly
Если File.SetAttributes("C:\\myFile.txt", FileAttributes.ReadOnly);
устанавливает файл как только для чтения, как мне установить его для чтения/записи, если мне нужно?
Я подозреваю, что это будет FileAttributes.Normal
, но это изменит любые другие свойства файла? На сайте MSDN нет ужасно описательной заметки...
Файл является нормальным и не имеет других атрибутов. Этот атрибут действителен, только если используется один.
Спасибо
Ответы
Ответ 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);