Поиск в каталогах по тоннам файлов? - PullRequest
9 голосов
/ 06 августа 2008

Я использую MSVE, и у меня есть собственные плитки, которые я отображаю слоями сверху. Проблема в том, что их множество, и они находятся на сетевом сервере. В определенных каталогах есть что-то порядка 30 000+ файлов. Сначала я вызывал Directory.GetFiles, но как только я начал тестировать в псевдо-реальной среде, время истекло.

Каков наилучший способ программно составить список и выполнить итерацию такого количества файлов?

Редактировать: мой коллега предложил использовать службу индексации MS. Кто-нибудь пробовал этот подход, и (как) он работал?

Ответы [ 5 ]

4 голосов
/ 06 августа 2008

В прошлом я работал над системой SAN с телефонными аудиозаписями, у которых были проблемы с количеством файлов в одной папке - эта система стала непригодной для использования где-то около 5000 (на Windows 2000 Advanced Server с приложением в C # .Net 1.1) - единственное разумное решение, которое мы придумали, - это изменить структуру папок, чтобы было более разумное количество файлов. Интересно, что Explorer тоже будет отключен!

Соглашение, которое мы придумали, было структурой, которая разбивала структуру на годы, месяцы и дни, но это будет зависеть от вашей системы и от того, сможете ли вы управлять структурой каталогов ...

2 голосов
/ 06 августа 2008

Определенно разделить их. Тем не менее, держитесь как можно дальше от Службы индексирования.

1 голос
/ 07 августа 2008

Вы также можете сами индексировать файлы или получить приложение третьей части, такое как Google Desktop, или copernic , чтобы сделать это, а затем взаимодействовать с их индексом. Я знаю, что у copernic есть API, который вы можете использовать для поиска любого файла в своем индексе, и он также поддерживает сопоставление сетевых дисков.

1 голос
/ 06 августа 2008

Вы могли бы использовать DOS?

DIR /s/b > Files.txt
1 голос
/ 06 августа 2008

Отсутствует. .NET полагается на базовые вызовы Windows API, которые действительно очень ненавидят такое количество файлов.

Как говорит Ронни: разделите их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...