C # Найти каталоги без системы и скрытой папки - PullRequest
0 голосов
/ 09 января 2019

Я хочу получить все каталоги в списке без системных и скрытых помеченных папок на диске.

Пример:

var Dizinler = Directory.EnumerateDirectories("C:\")
               .Select(s => new DirectoryInfo(s))
               .Where(s => !s.Attributes.HasFlag(FileAttributes.Directory | FileAttributes.System | FileAttributes.Hidden) )
               .Select(s=> s.FullName).ToArray();

Однако возвращаемые результаты по-прежнему содержат скрытые и системные папки.

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Проблема |. Сделай это как:

    var Dizinler = Directory.EnumerateDirectories("C:\")
.Select(s => new DirectoryInfo(s)).Where(s => s.Attributes.HasFlag(FileAttributes.Directory) &&
    !s.Attributes.HasFlag(FileAttributes.System) && !s.Attributes.HasFlag(FileAttributes.Hidden) )
.Select(s=> s.FullName).ToArray();
0 голосов
/ 09 января 2019

Кажется, вам не следует объединять все атрибуты:

var Dizinler = Directory.EnumerateDirectories("C:\")
           .Select(s => new DirectoryInfo(s))
           .Where(s => s.Attributes.HasFlag(FileAttributes.Directory))
           .Where(s => !s.Attributes.HasFlag(FileAttributes.System))
           .Where(s => !s.Attributes.HasFlag(FileAttributes.Hidden))
           .Select(s=> s.FullName).ToArray();
...