Я пытаюсь установить флаг, который вызывает флажок Read Only
, когда вы укажете right click \ Properties
на файл.Лучший способ сделать файл доступным для записи в C#
Спасибо!
Я пытаюсь установить флаг, который вызывает флажок Read Only
, когда вы укажете right click \ Properties
на файл.Лучший способ сделать файл доступным для записи в C#
Спасибо!
Два способа:
System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
fileInfo.IsReadOnly = true/false;
или
// Careful! This will clear other file flags e.g. FileAttributes.Hidden
File.SetAttributes(filePath, FileAttributes.ReadOnly/FileAttributes.Normal);
IsReadOnly свойство на FileInfo по существу делает бит листать вам придется делать вручную во втором методе.
C#:
File.SetAttributes (Filepath, FileAttributes.Normal);
File.SetAttributes (filePath, FileAttributes.ReadOnly);
Чтобы установить флаг только для чтения, в действительности делает файл не-доступным для записи:
File.SetAttributes(filePath,
File.GetAttributes(filePath) | FileAttributes.ReadOnly);
К удалить флаг только для чтения, в действительности делает файл доступным для записи:
File.SetAttributes(filePath,
File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);
Для переключения флаг только для чтения, что делает его противоположное то, что это прямо сейчас:
File.SetAttributes(filePath,
File.GetAttributes(filePath)^FileAttributes.ReadOnly);
В основном это битмаски. Вы устанавливаете определенный бит, чтобы установить флаг только для чтения, вы очищаете его, чтобы удалить флаг.
Обратите внимание, что приведенный выше код не изменит никаких других свойств файла. Другими словами, если файл был скрыт до того, как вы выполнили вышеуказанный код, он также останется скрытым. Если вы просто установите атрибуты файла .Normal
или .ReadOnly
, вы можете потерять другие флаги в этом процессе.
imho это лучший способ. – Kevin
Вы пытаетесь сделать файл только для чтения, по вашему вопросу или записям (не только для чтения), по вашему типу вопроса? –
Это сложная проблема для ОС на базе Win2k. Существует атрибут «только для чтения», который вы можете предоставить файлу, а также есть разрешение на запись, которое предоставляется через вкладку «Разрешения». Первое - это просто предложение, где последняя фактически применяется операционной системой. – Armentage
@Armentage Я не думаю, что это так сложно. Существует четкое различие между файловыми флагами и наборами разрешений NTFS, и этот вопрос явно касается первого случая. –