【问题标题】:Get folders that contain a certain number of directories获取包含一定数量目录的文件夹
【发布时间】:2016-05-25 02:16:21
【问题描述】:

所以现在我有一个我想要通过正则表达式模式和 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")))。 Where(d => d.GetFiles().Length > 3).ToList();

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

谁能告诉我如何从这里过滤它,还有 * 在获取目录函数中是什么意思

【问题讨论】:

  • 你能发布你目前得到的代码吗?
  • 我建议您自己尝试一下,并在遇到困难时发布您的代码。这将使您的问题100%更好。当您提出高质量的问题时,我们会提供最好的帮助。

标签: c# getdirectories


【解决方案1】:

我想这是一个起点:

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,那么你可以假设子目录是空的。您应该能够将此代码用作模板来做您想做的事情。

【讨论】:

  • 这是我目前得到的: DirectoryInfo root = new DirectoryInfo(@"\\visrep01\REPORTS"); var dirs = new List(); dirs = root.GetDirectories("*", SearchOption.AllDirectories).Where(d => reg.IsMatch(d.Name)).Where((d => !d.FullName.EndsWith("TESTS")))。 Where(d => d.GetDirectories().Length >= 0).Where(d => d.GetFiles().Length > 3).ToList();谁能告诉我从这里我可以去哪里
  • 我的新问题是我已经通过上面的搜索获得了我想要的格式的所有目录和子目录,但实际上我没有返回任何内容,我认为这是因为使用 get 目录时未经授权的访问废话绕过这个的解决方案。
  • 好吧,如果您没有访问权限,那么我无能为力,您必须与您的网络管理员交谈,但您还需要证明您为什么需要访问权限
猜你喜欢
  • 1970-01-01
  • 2014-08-13
  • 2013-08-26
  • 1970-01-01
  • 2013-06-21
  • 2017-04-29
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
相关资源
最近更新 更多