Удалите атрибут "только для чтения" из каталога

Как я могу программно удалить атрибут "только для чтения" из каталога в C#?

40
задан Sam 7 July 2015 в 14:26
поделиться

4 ответа

var di = new DirectoryInfo("SomeFolder");
di.Attributes &= ~FileAttributes.ReadOnly;
83
ответ дан 27 November 2019 в 01:21
поделиться

Если вы пытаетесь удалить атрибут файла в файловой системе, создайте экземпляр класса System.IO.FileInfo и установите свойство IsReadOnly в false.

        FileInfo file = new FileInfo("c:\\microsoft.text");
        file.IsReadOnly = false;
2
ответ дан 27 November 2019 в 01:21
поделиться

Вот хорошая ссылка на примеры изменения атрибутов файлов с помощью c#

http://www.csharp-examples.net/file-attributes/

основываясь на их примере, вы можете удалить атрибут Read Only следующим образом (я не тестировал это):

File.SetAttributes(filePath, File.GetAttributes(filePath) & ~FileAttributes.ReadOnly);
7
ответ дан 27 November 2019 в 01:21
поделиться

Наконец-то разобрался. ;)

class Program
{
    static void Main(string[] args)
    {
        DirectoryInfo di = new DirectoryInfo("c:\\test");

        FileAttributes f = di.Attributes;

        Console.WriteLine("Directory c:\\test has attributes:");
        DecipherAttributes(f);

    }

    public static void DecipherAttributes(FileAttributes f)
    {
        // To set use File.SetAttributes

        File.SetAttributes(@"C:\test", FileAttributes.ReadOnly);

        if ((f & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
            Console.WriteLine("ReadOnly");

        // To remove readonly use "-="
        f -= FileAttributes.ReadOnly;

        if ((f & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
            Console.WriteLine("ReadOnly");
        else
            Console.WriteLine("Not ReadOnly");
    }
}
0
ответ дан 27 November 2019 в 01:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: