我需要检查目录是否为空。问题是,我想将目录视为空,如果它包含子文件夹,无论子文件夹是否包含文件。我只关心我正在看的路径中的文件。这个目录将通过网络访问,这种情况有点复杂。最好的方法是什么?
答案 0 :(得分:28)
Directory.EnumerateFiles(string)
方法重载仅返回指定目录中直接的文件。它不会返回其中包含的任何子目录或文件。
bool isEmpty = !Directory.EnumerateFiles(path).Any();
EnumerateFiles
优于GetFiles
的优点是文件集合是按需枚举的,这意味着一旦返回第一个文件,查询就会成功(从而避免阅读剩下的目录中的文件。)
答案 1 :(得分:8)
也许这就是:
if (Directory.GetFiles(path).Length == 0)...... ;