3 回答
TA贡献1848条经验 获得超10个赞
这应该为您工作:
DirectoryInfo directory = new DirectoryInfo(@"C:\temp");
FileInfo[] files = directory.GetFiles();
var filtered = files.Where(f => !f.Attributes.HasFlag(FileAttributes.Hidden));
foreach (var f in filtered)
{
Debug.WriteLine(f);
}
TA贡献1812条经验 获得超5个赞
// check whether a file is hidden
bool isHidden = ((File.GetAttributes(filePath) & FileAttributes.Hidden) == FileAttributes.Hidden);
TA贡献1828条经验 获得超6个赞
使用.NET 4.0和Directory.EnumerateDirectories,可以使用以下结构:
var hiddenFilesQuery = from file in Directory.EnumerateDirectories(@"c:\temp")
let info = new FileInfo(file)
where (info.Attributes & FileAttributes.Hidden) == 0
select file;
这与其他答案基本相同,除了Directory.EnumerateDirectories有点懒。但是,如果您枚举所有内容,这不是很有用。
(让这里有一个查询,但更可读)。
- 3 回答
- 0 关注
- 1486 浏览
添加回答
举报