我必须检查磁盘上的目录是否为空。这意味着它不包含任何文件夹/文件。我知道,有一个简单的方法。我们获取FileSystemInfo的数组,并检查元素数是否等于零。像这样: public static bool CheckFolderEmpty(string path) { if (string.IsNullOrEmpty(path)) { throw new ArgumentNullException("path"); } var folder = new DirectoryInfo(path); if (folder.Exists) { return folder.GetFileSystemInfos().Length == 0; } throw new DirectoryNotFoundException(); } 这种方法似乎还可以。但!!从性能的角度来看,这是非常非常糟糕的。GetFileSystemInfos()是一个非常困难的方法。实际上,它枚举了文件夹的所有文件系统对象,获取了它们的所有属性,创建了对象,填充了类型化数组等。所有这些只是为了简单地检查Length。那是愚蠢的,不是吗? 我只是剖析了此类代码,并确定在约500毫秒内执行了约250次此类方法的调用。这非常慢,我相信可以更快地完成。 有什么建议?