2008-08-06 9 views
9

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

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

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

ответ

4

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

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

+0

(Я сейчас в новой компании, но я помню части этого проекта.) Проблема заключается в том, что AFAIK, MSVE имела определенную структуру папок, которую она ожидала, - и все для одного слоя попало в один папка. Мы не изучили его достаточно, чтобы знать, можем ли мы объединить несколько папок, чтобы MSVE мог смотреть во всех них или просматривать конкретные папки на определенных уровнях. – 2009-09-01 16:47:14

1

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

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

2

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

+0

Мы, к счастью, не пытались использовать службу индексирования. И команда, в которой я участвовала, теперь сводится к одному человеку. Поэтому я думаю, что эта часть проекта опустилась в списке приоритетов. – 2009-09-01 16:48:08

1

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