Основы C# Урок 55. Перечисление FileAttributes
С помощью перечисления FileAttributes задаются атрибуты для
файлов и папок. Вот наиболее важные значения этого
перечисления:
Directory - определяет, не есть ли объект
папка.
Hidden - определяет, не является ли объект
(папка или файл) скрытым.
ReadOnly - определяет, не имеет ли файл
атрибут "только для чтения".
Normal - определяет, что для файла не
установлены любые другие атрибуты. Данный элемент перечисления
не может комбинироваться с другими элементами этого же
перечисления.
System - определяет, не являетя ли файл
системным.
Archive - определяет, не является ли файл
архивным.
Compressed - определяет, не является ли
файл сжатым файлом.
А вот использование этого перечисления: // Создание объекта DirectoryInfo.
DirectoryInfo di = new DirectoryInfo("c:\\tmp\\tmp2");
// Присваиваем атрибут "Только для чтения".
di.Attributes |= FileAttributes.Hidden;
// Получаем атриубты файла.
FileAttributes fi = di.Attributes;
// Выясняем, есть ли у папки атрибут Hidden.
if((fi & FileAttributes.Hidden) == FileAttributes.Hidden)
{
Console.WriteLine("Hidden");
}
// Выясняем, есть ли у папки атрибут ReadOnly.
if((fi & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
Console.WriteLine("ReadOnly");
}
Обратите внимание на то, как мы определяем присутствие
некоторого атрибута: ...
if((fi & FileAttributes.Hidden) == FileAttributes.Hidden)...
Если мы напишем просто ...
if(fi == FileAttributes.Hidden) // Логический ошибка!
...
то наш фрагмент выдаст правильный результат только тогда,
когда атрибут Hidden будет у нашей папки единственным. А так
как обычно атрибутов несколько, то надо использовать первый
вариант. |