4

(使用 Windows 7 64 位和 C#)

有什么方法可以从搜索中排除这些受保护的文件?

这是显示文件夹中的所有文件,包括“系统文件”

string[] files = Directory.GetFiles(directory);

在此处输入图像描述 在此处输入图像描述

4

4 回答 4

12
var list = new DirectoryInfo(@"C:\").GetFiles()
                .Where(f => !f.Attributes.HasFlag(FileAttributes.System))
                .Select(f => f.FullName)
                .ToList();
于 2013-04-17T13:48:29.947 回答
2

您可以使用FileInfo

var fileInfo = new FileInfo(path);
if((fileInfo.Attributes & FileAttributes.System) != FileAttributes.System))
{
    // path is not a system file
}
于 2013-04-17T13:48:04.087 回答
0

Directory.GetFiles 与所有其他适用于文件系统的 .Net 框架方法一样,不使用资源管理器设置。您可以通过路径获取 FileInfo,然后检查属性以自行过滤掉隐藏文件。

于 2013-04-17T13:45:33.370 回答
0

对于每个文件,您必须检查文件属性,如下所示

FileAttributes att = File.GetAttributes(@"c:\samplefile.dll");

然后使用以下测试

if ((att & FileAttributes.System) == FileAttributes.System)
{
    // the file is system
}
于 2013-04-17T13:52:33.310 回答