获取包含特定数量目录的文件夹

时间:2016-05-25 02:16:21

标签: c# getdirectories

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

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

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

有人可以告诉我如何从这里过滤它,以及*在get目录函数中的含义

1 个答案:

答案 0 :(得分: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,那么您可以假设子目录为空。您应该能够使用此代码作为模板来执行您想要的操作。