C# - 检索Windows中目录下所有ReadOnly文件的列表

时间:2016-11-10 06:53:41

标签: c# .net

我需要获取包含子文件夹下文件的目录下所有ReadOnly文件的列表。 .NET Framework中是否存在比循环遍历所有文件更容易的内容?

2 个答案:

答案 0 :(得分:5)

    var path = @"C:\";//Some path
    var readOnlyFiles = new DirectoryInfo(path)
        .EnumerateFiles("*", SearchOption.AllDirectories)
        .Where(file => file.Attributes.HasFlag(FileAttributes.ReadOnly));

答案 1 :(得分:1)

SearchOption.AllDirectories中的System.IO.Directory.EnumerateFiles中有一个标记,表示递归搜索。这是一种做事的方法:

var readOnlyFiles =
    Directory.EnumerateFiles("base directory", "*", SearchOption.AllDirectories)
        .Where(file => new FileInfo(file).IsReadOnly).ToList();