CodeInside
@CodeInside

Как вывести атрибуты файла?

Задание: для заданого файла вывести его атрибуты.
Знаю, что надо создать экземпляр класса File и воспользоваться методом GetAttributes, который вернёт тип FileAttributes. Можно как-то написать эту программу (вывести атрибуты), не обращаясь к каждому члену типа FileAttributes (ReadOnly,Hidden и т.д.)?
Второй вопрос: '@' в C# - это символ того, что дальше идёт адресс файла?
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
lasalas
@lasalas
.NET Architect
var attrs = File.GetAttributes(@"C:\swapfile.sys"); // @ означает, что спецсимволы (\n\r ...) не интепретируются и \ не нужно задавать как \\

var flags = Enum.GetValues(typeof(FileAttributes))
        .Cast<FileAttributes>()
        .Where(flag => attrs.HasFlag(flag))
        .Select(flag => Enum.GetName(typeof(FileAttributes), flag));

foreach (var flag in flags)
        Console.WriteLine(flag);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@make_luv
C# много где используется. В синтаксисе Razor - в представлениях MVC - @ означает, что за ней пойдет код, а не HTML.
Ответ написан
Nipheris
@Nipheris Куратор тега C#
> Можно как-то написать эту программу (вывести атрибуты), не обращаясь к каждому члену типа FileAttributes (ReadOnly,Hidden и т.д.)?
Что вы имеете в виду "не обращаясь"? FileAttributes это флаговое поле, вы берете конкретное его значение и or-ите с конкретными значениями перечисления, если операция или дает true - делаете соответствующее действие (выводите что-то на экран). Вам же нужно что-то вменяемое вывести ("Скрытый, Системный" или "HS" например), поэтому это вам проверять и решать, что делать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы