2012-06-17 84 views
7

我需要检查目录是否为空。问题是,如果包含子文件夹而不管子文件夹是否包含文件,我想将其视为空目录。我只关心我正在看的路径中的文件。这个目录将通过网络访问,这有点复杂。什么是最好的方式去做这件事?检查目录是否有文件,但它可能包含子文件夹

回答

24

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

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

EnumerateFiles超过GetFiles的优势在于文件的集合枚举点播,意味着查询将尽快返回第一个文件成功(从而避免读取文件的其余部分在目录)。

+0

这是完美的,正是我需要的!感谢道格拉斯。 – Tharkis

+0

有关信息; Directory.EnumerateFiles(字符串)是在.NET 4中添加的,因此在旧版本的.NET中不起作用。 – tomRedox

7

也许这:

if (Directory.GetFiles(path).Length == 0)...... ; 
相关问题