Поделиться через


FileSystemInfo.Attributes Свойство

Определение

Получает или задает атрибуты для текущего файла или каталога.

public:
 property System::IO::FileAttributes Attributes { System::IO::FileAttributes get(); void set(System::IO::FileAttributes value); };
public System.IO.FileAttributes Attributes { get; set; }
member this.Attributes : System.IO.FileAttributes with get, set
Public Property Attributes As FileAttributes

Значение свойства

Атрибуты FileAttributes текущего объекта FileSystemInfo.

Исключения

Указанный файл не существует. Возникает только при установке значения свойства.

Указан недопустимый путь. Например, он ведет на несопоставленный диск. Возникает только при установке значения свойства.

У вызывающего объекта отсутствует необходимое разрешение.

Только .NET Core и .NET 5+. Пользователь пытается задать значение атрибута, но не имеет разрешения на запись.

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.

Вызывающий оператор пытается установить недействительный атрибут файла.

-или-

Только .NET Framework: Пользователь пытается задать значение атрибута, но не имеет разрешения на запись.

Refresh() не может инициализировать данные.

Примеры

В следующем примере демонстрируется Attributes свойство . Этот пример входит в состав более крупного примера использования класса FileSystemInfo.

static void DisplayFileSystemInfoAttributes(FileSystemInfo^ fsi)
{
    //  Assume that this entry is a file.
    String^ entryType = "File";

    // Determine if entry is really a directory
    if ((fsi->Attributes & FileAttributes::Directory) == FileAttributes::Directory)
    {
        entryType = "Directory";
    }
    //  Show this entry's type, name, and creation date.
    Console::WriteLine("{0} entry {1} was created on {2:D}", entryType, fsi->FullName, fsi->CreationTime);
}
static void DisplayFileSystemInfoAttributes(FileSystemInfo fsi)
{
    //  Assume that this entry is a file.
    string entryType = "File";

    // Determine if entry is really a directory
    if ((fsi.Attributes & FileAttributes.Directory) == FileAttributes.Directory )
    {
        entryType = "Directory";
    }
    //  Show this entry's type, name, and creation date.
    Console.WriteLine("{0} entry {1} was created on {2:D}", entryType, fsi.FullName, fsi.CreationTime);
}
Sub DisplayFileSystemInfoAttributes(ByVal fsi As IO.FileSystemInfo)
    ' Assume that this entry is a file.
    Dim entryType As String = "File"

    ' Determine if this entry is really a directory.
    If (fsi.Attributes And FileAttributes.Directory) = FileAttributes.Directory Then
        entryType = "Directory"
    End If

    ' Show this entry's type, name, and creation date.
    Console.WriteLine("{0} entry {1} was created on {2:D}", _
        entryType, fsi.FullName, fsi.CreationTime)
End Sub

Комментарии

Значение Attributes свойства предварительно кэшируется, если текущий FileSystemInfo экземпляр объекта был возвращен любым из следующих DirectoryInfo методов:

Значение может кэшироваться при доступе к самому значению или другим FileSystemInfo свойствам. Чтобы получить последнее значение, вызовите Refresh метод .

Если путь не существует в последнем кэшированном состоянии, возвращается (FileAttributes)(-1)значение . FileNotFoundException Или DirectoryNotFoundException может вызываться только при задании значения.

Значение этого свойства представляет собой сочетание архивных, сжатых, каталогов, скрытых, автономных, доступных только для чтения, системных и временных флагов файлов.

При установке этого значения используйте побитовый оператор OR (| в C# или Or Visual Basic), чтобы применить несколько значений. Чтобы сохранить все существующие значения в свойстве Attributes , включите значение Attributes свойства в назначение. Пример:

exampleFile.Attributes = exampleFile.Attributes | FileAttributes.ReadOnly;

Применяется к

См. также раздел