14

我需要检查目录是否为空。问题是,如果目录包含子文件夹,我想认为该目录为空,无论子文件夹是否包含文件。我只关心我正在查看的路径中的文件。该目录将通过网络访问,这使事情有点复杂。解决此问题的最佳方法是什么?

4

2 回答 2

33

Directory.EnumerateFiles(string)方法重载只返回直接包含在指定目录中的文件。它不返回其中包含的任何子目录或文件。

bool isEmpty = !Directory.EnumerateFiles(path).Any();

EnumerateFilesover的好处GetFiles是按需枚举文件的集合,这意味着只要返回第一个文件,查询就会成功(从而避免读取目录中的其余文件)。

于 2012-06-17T13:29:42.200 回答
9

也许是这样:

if (Directory.GetFiles(path).Length == 0)...... ;
于 2012-06-17T13:31:07.283 回答