2008-08-06 36 views
9

Tôi đang sử dụng MSVE và tôi có các khối riêng của mình mà tôi đang hiển thị ở các lớp trên cùng. Vấn đề là, có một tấn trong số họ, và họ đang ở trên một máy chủ mạng. Trong một số thư mục nhất định, có thứ gì đó theo thứ tự 30.000 tệp. Ban đầu tôi gọi Directory.GetFiles, nhưng một khi tôi bắt đầu thử nghiệm trong một môi trường giả thực, nó đã hết thời gian chờ.Tìm kiếm thư mục cho hàng tấn tệp?

Cách tốt nhất để lập trình danh sách, và lặp qua, nhiều tệp này là gì?

Chỉnh sửa: Đồng nghiệp của tôi đã đề xuất sử dụng dịch vụ lập chỉ mục MS. Có ai đã thử phương pháp này, và (như thế nào) nó đã làm việc?

Trả lời

4

tôi đã làm việc trên một hệ thống SAN trong quá khứ với các bản ghi âm điện thoại âm thanh trong đó có vấn đề với số lượng tập tin trong một thư mục duy nhất - hệ thống mà trở thành không sử dụng được ở đâu đó gần 5.000 (trên Windows 2000 Advanced Server với một ứng dụng trong C#. Net 1.1) - giải pháp hợp lý duy nhất mà chúng tôi đưa ra là thay đổi cấu trúc thư mục để có số lượng tệp hợp lý hơn. Explorer thú vị cũng sẽ hết thời gian!

Quy ước chúng tôi đã đưa ra được một cấu trúc mà đã phá vỡ cấu trúc lên trong những năm, tháng và ngày - nhưng điều đó sẽ phụ thuộc vào hệ thống của bạn và cho dù bạn có thể kiểm soát cấu trúc thư mục ...

+0

(Tôi hiện đang ở một công ty mới nhưng tôi nhớ một phần của dự án này.) Vấn đề là, AFAIK, MSVE có cấu trúc thư mục cụ thể mong đợi - và mọi thứ cho một lớp thư mục. Chúng tôi đã không nhìn vào nó đủ để biết liệu chúng tôi có thể tổng hợp nhiều thư mục để MSVE có thể nhìn vào tất cả chúng, hoặc xem trong các thư mục cụ thể ở các cấp cụ thể. –

1

Không. .NET dựa trên các cuộc gọi API Windows cơ bản thực sự, thực sự ghét số lượng tệp đó.

Như Ronnie nói: chia chúng ra.

1

Bạn có thể sử dụng DOS?

DIR /s/b > Files.txt 
2

Chắc chắn chia chúng ra. Điều đó nói rằng, ở xa như các dịch vụ chỉ mục như bạn có thể.

+0

Chúng tôi không bao giờ có xung quanh để cố gắng sử dụng dịch vụ lập chỉ mục, may mắn thay. Và nhóm tôi là một phần của bây giờ là một người. Vì vậy, tôi nghĩ rằng phần này của dự án đã giảm xuống trên danh sách ưu tiên. –

1

Bạn cũng có thể xem xét việc tự lập chỉ mục tệp hoặc tải ứng dụng thứ ba như google desktop hoặc copernic để làm điều đó và sau đó giao tiếp với chỉ mục của chúng. Tôi biết copernic có một API mà bạn có thể sử dụng để tìm kiếm bất kỳ tệp nào trong chỉ mục của họ và nó cũng hỗ trợ ánh xạ ổ đĩa mạng.

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