我想获得列表中的所有目录,而驱动器上没有系统和隐藏的标记文件夹。
示例:
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();
但是,返回的结果仍然包含隐藏文件夹和系统文件夹。
答案 0 :(得分:1)
似乎,您不应该合并所有属性:
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();
答案 1 :(得分:0)
问题是|
。这样做:
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();