Я пишу небольшую программу, которая создает индекс всех файлов в моих каталогах. Он в основном выполняет итерацию по каждому файлу на диске и сохраняет его в базе данных, доступной для поиска, так же, как в Unix. Проблема в том, что генерация индекса довольно медленная, так как у меня около миллиона файлов.
Как только я сгенерировал индекс, есть ли быстрый способ узнать, какие файлы были добавлены или удалены на диске с момента последнего запуска?
EDIT. Я не хочу отслеживать события файловой системы. Я думаю, что риск слишком высок, чтобы выйти из синхронизации, я бы предпочел иметь что-то вроде быстрого повторного сканирования, которое быстро находит, где файлы были добавлены/удалены. Может быть, с последней измененной датой каталога или что-то еще?
Маленький бенчмарк
Я просто сделал небольшой ориентир. Запуск
dir /b /s M:\tests\ >c:\out.txt
Получает 0,9 секунды и дает мне всю необходимую мне информацию. Когда я использую Java-реализацию (как это), она занимает около 4,5 секунд. Любые идеи о том, как улучшить по крайней мере этот подход грубой силы?
Похожие сообщения: Как узнать, изменился ли подфайл каталога