Как эффективно проверить наличие большого объема файлов с помощью библиотеки JCIFS? - PullRequest
2 голосов
/ 24 марта 2011

У меня есть процесс, который читает базу данных для сбора информации о сервере и пути около 200 000 файлов (и продолжает расти). Я использовал библиотеку JCIFS, чтобы проверить, существует ли файл в указанном месте по одному, используя что-то вроде:

SmbFile file = new SmbFile(fullPath, getNtlmPasswordAuthentication());
if(file.exists()) {
     return true;
}

Для завершения процесса требуется пара часов. Я пытаюсь найти способ ускорить процесс. Файлы, которые необходимо проверить, распределены по 40 каталогам. Каждый каталог может содержать пару тысяч файлов. SmbFile API имеет функцию listFiles () , которая позволяет мне открыть каталог и получить обратно массив SmbFile в этой папке , Интересно, нахожусь ли я на правильном пути и есть ли у кого идея получше. Спасибо!

1 Ответ

3 голосов
/ 24 марта 2011

Абсолютно вы должны использовать listFiles ().Если я правильно понимаю вещи, ваш подход приводит к запросу на файл, а listFiles () выдаст вам запрос на каталог - я бы ожидал, что скорость возрастет до x1000 или около того

...