Answer the question
In order to leave comments, you need to log in
How to properly compare ENUM in C#?
Help plz.
I have already found Yandex, and stackoverflow and so on. how to do ENUM
checks correctly ?
DirectoryInfo dir = new DirectoryInfo("D:\\");
if (dir.Attributes == (FileAttributes.Hidden & FileAttributes.Offline))
{
return;
}
directory.Attributes = Hidden | System | Directory | Archive
Answer the question
In order to leave comments, you need to log in
FileAttributes is not an Enum in the usual sense. This is a bit mask, that is, a number in which certain bits have certain values. The example is frankly wrong, since the expected directories will also have the Directory attribute, at least. If you need to find all files that have one of the attributes, then the code should look like this
if(dir.Attributes & (FileAttributes.Hidden | FileAttributes.Offline) != 0)
Спасибо всем участникам. Кроме вопроса, Вы помогли раскрыть эту тему полностью. Надеюсь это будет полезно ищущим. Собственно я вопрос этот специально писал, чтобы его можно было легко найти через поиск.
Если интересно.
То прога простая, консольная, благодаря Вам ее написал. Показывает список папок и файлов пути которых больше чем 250 символов. Так как злой проводник Windows имеет ограничение для копирования файлов в 250 символов.
Нет возможности делать резервные копии. При больших объемах резервного копирования всегда найдутся 1000 файлов которые выдадут ошибку при копировании.
Надеюсь прога будет полезной.
https://disk.yandex.ru/d/q6YMB4pSRc3Kgw
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question