Как снять флажок «только для чтения» для файла в .NET? - PullRequest
3 голосов
/ 24 декабря 2009

Как снять флажок только для чтения для файла в .NET и оставить остальные нетронутыми ?

Ответы [ 2 ]

4 голосов
/ 24 декабря 2009

Разве вы не можете просто сделать:

FileInfo f = new FileInfo("yourfile.txt");
f.IsReadOnly = false;

Или я что-то упустил?

2 голосов
/ 24 декабря 2009

Я бы получил экземпляр FileInfo для файла, а затем установил для свойства IsReadOnly значение false (согласно документации здесь: http://msdn.microsoft.com/en-us/library/system.io.fileinfo.isreadonly.aspx):

new FileInfo("path").IsReadOnly = false;

Если вы настаиваете на использовании статических методов GetAttributes и SetAttributes в классе File, вы можете просто сделать это:

File.SetAttributes("path", 
    File.GetAttributes("path") & ~FileAttributes.ReadOnly);

Общий шаблон, когда вы хотите очистить флаг на растровом изображении, состоит в том, чтобы взять значение для флага (в данном случае FileAttributes.ReadOnly), инвертировать его (используя оператор ~), а затем применить инвертированное значение к значение, содержащее различные флаги (в данном случае File.GetAttributes ("path")).

...