如果语句检查文件夹是否包含文件

时间:2019-06-18 14:01:07

标签: c# file if-statement move

我需要一个if语句来检查文件夹是否包含文件。我已经尝试了一些方法,但是如果根文件夹中的子文件夹中有文件,则无法使其正常工作。我是否需要一个 loop 来查看子文件夹?这是我到目前为止的内容:

if(Directory.GetDirectories(oldDir).Length == 0 && Directory.GetFiles(oldDir).Length == 0)
{
   //do this
}

我希望它可以拾取不包含任何文件的文件夹。 (天气是否有子文件夹)

2 个答案:

答案 0 :(得分:3)

您不必使用GetFiles获取所有文件 /目录(想象一下,如果我们想知道我们是否在c:\中有文件)。我们可以尝试开始枚举文件并检查是否有Any个文件。如果我们要检查子文件夹,我们可以添加SearchOption.AllDirectories选项:

// Do we have any file - "*" in any directory or sub directory  
if (Directory.EnumerateFiles(oldDir, "*", SearchOption.AllDirectories).Any()) {    
  //do this
}

答案 1 :(得分:-2)

您可以通过递归来做到这一点:

      public bool ContainsFiles(string dirName)
      {
         if (Directory.GetFiles(dirName).Any()) return true;
         return Directory.GetDirectories(dirName).Any(subDir => ContainsFiles(subDir));
      }