3 回答

TA貢獻1848條經(jīng)驗 獲得超10個贊
這應(yīng)該為您工作:
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條經(jīng)驗 獲得超5個贊
// check whether a file is hidden
bool isHidden = ((File.GetAttributes(filePath) & FileAttributes.Hidden) == FileAttributes.Hidden);

TA貢獻1828條經(jīng)驗 獲得超6個贊
使用.NET 4.0和Directory.EnumerateDirectories,可以使用以下結(jié)構(gòu):
var hiddenFilesQuery = from file in Directory.EnumerateDirectories(@"c:\temp")
let info = new FileInfo(file)
where (info.Attributes & FileAttributes.Hidden) == 0
select file;
這與其他答案基本相同,除了Directory.EnumerateDirectories有點懶。但是,如果您枚舉所有內(nèi)容,這不是很有用。
(讓這里有一個查詢,但更可讀)。
- 3 回答
- 0 關(guān)注
- 1550 瀏覽
添加回答
舉報