2009-08-05 37 views
6

Tôi cần xác định số lượng tệp/thư mục con trong một thư mục. Tôi không quan tâm những tập tin/thư mục nào thực sự nằm trong thư mục đó. Có cách nào hiệu quả hơn việc sử dụngXác định số lượng tệp trong một thư mục

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

Cảm ơn.

+0

trùng lặp: 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

Trả lời

13

Đó có thể là khoảng tốt như nó được, nhưng bạn nên sử dụng GetFileSystemInfos() thay vì đó sẽ cung cấp cho bạn tất cả các file và thư mục:

_directoryInfo.GetFileSystemInfos().Length 
+0

Tôi sẽ thử điều đó. Cảm ơn. – Mav3rick

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

sau đó chỉ cần lấy kích thước của mảng filepaths

mã từ: C#-Examples

+0

Sean Brights câu trả lời có thể hoạt động tốt hơn cho mã của bạn –

2

Bạn có thể sử dụng phương pháp GetFileSystemEntries được tìm thấy trong Directory lớp và sau đó truy vấn Length của mảng các mục được trả về.

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

int NumberOfFilesInDir; 

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

Tại sao không chỉ làm tệp.Length? –

+1

Tôi là một lập trình viên tự học và đã không sử dụng cách đó trước đây. Tôi đã không cố gắng để ngụ ý rằng câu trả lời ban đầu là không tốt, tôi đã chỉ đơn giản là cung cấp một cách khác ... :-) –

Các vấn đề liên quan