Directory.GetFiles()
возвраты все файлы, даже те, которые отмечены, как скрытый. Существует ли способ получить список файлов, который исключает скрытые файлы?
Это должно работать для вас:
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);
}
Используя .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 немного более ленив. Однако это не очень полезно, если вы все перечисляете.
(Let здесь, чтобы запрос был более читабельным).