我需要一个if语句来检查文件夹是否包含文件。我已经尝试了一些方法,但是如果根文件夹中的子文件夹中有文件,则无法使其正常工作。我是否需要一个 loop 来查看子文件夹?这是我到目前为止的内容:
if(Directory.GetDirectories(oldDir).Length == 0 && Directory.GetFiles(oldDir).Length == 0)
{
//do this
}
我希望它可以拾取不包含任何文件的文件夹。 (天气是否有子文件夹)
答案 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));
}