2009-08-05 41 views
6

我需要确定目录中文件/子目录的数量。我不关心哪个文件/目录实际上在那个目录中。有没有比使用更有效的方法确定目录中文件的数量

_directoryInfo.GetDirectories().Length + 
_directoryInfo.GetFiles().Length 

谢谢。

+0

重复: http://stackoverflow.com/questions/1192951/quicker-quickest-way-to-get-number-of-files-in-a-directory-with-over-200-000 -f http://stackoverflow.com/questions/349251/how-do-i-find-out-how-many-files-are-in-a-directory – JohnFx 2009-08-05 20:45:52

回答

13

这可能是因为它得到一样好,但你应该使用GetFileSystemInfos()代替,这将给你文件和目录:

_directoryInfo.GetFileSystemInfos().Length 
+0

我会试试看。谢谢。 – Mav3rick 2009-08-05 20:27:55

2
string[] filePaths = Directory.GetFiles(@"c:\MyDir\"); 

然后只取文件路径数组的大小

代码来自: C#-Examples

+0

肖恩·布朗斯答案可能适用于你的代码更好 – 2009-08-05 20:31:04

2

您可以使用0中找到的GetFileSystemEntries方法类,然后查询返回的项目数组的Length

1
DirectoryInfo d = new DirectoryInfo(@"C:\MyDirectory\"); 
FileInfo[] files = d.GetFiles("*.*"); 

int NumberOfFilesInDir; 

foreach(FileInfo file in files) 
{ 
    NumberOfFilesInDir++; 
} 
+0

为什么不只是做files.Length? – 2009-08-07 18:28:02

+1

我是一名自学成才的程序员,以前没有这样使用过。我并不是想暗示原来的答案不好,我只是提供另一种方式...... :-) – 2009-08-10 17:32:14

相关问题