-4

所以现在我有一个我想要通过正则表达式模式和 linq 过滤的目录列表。我需要一种方法来获取包含一定数量目录的文件夹并跳过没有 1 的文件夹以及如何检查我的目录信息是否为空。有什么建议么 ?所以这就是我到目前为止所拥有的

DirectoryInfo root = new DirectoryInfo(@"C:\Users\jphillips\Desktop\test"); var dirs = 新列表();dirs = root.GetDirectories("*", SearchOption.AllDirectories).Where(d => reg.IsMatch(d.Name)).Where((d => !d.FullName.EndsWith("TESTS")))。其中(d => d.GetFiles().Length > 3).ToList();

  foreach (DirectoryInfo dir in dirs)
  {
    Console.WriteLine(dir.FullName);
  }

有人可以告诉我如何从这里过滤它,还有 * 在获取目录功能中是什么意思

4

1 回答 1

0

我想这是一个起点:

var diProjects = new DirectoryInfo(@"C:\Projects");
var subFolders = diProjects.GetDirectories();
for (var i = 0; i < subFolders.Length; i++)
{
    Console.WriteLine(string.Format("[{0}] {1}, directories = {2}, files = {3}"
        , i
        , subFolders[i].FullName
        , subFolders[i].GetDirectories().Length
        , subFolders[i].GetFiles().Length));
}

以下行获取指定文件夹中的目录数,您可以检查它是否等于 0 或您需要检查的任何值

subFolders[i].GetDirectories().Length

您也可以使用以下内容获取子目录中的数字文件

subFolders[i].GetFiles().Length

如果两者subFolders[i].GetDirectories().LengthsubFolders[i].GetFiles().Length为 0,那么您可以假设子目录为空。您应该能够使用此代码作为模板来做您想做的事。

于 2016-05-25T02:44:50.320 回答