Как в Java сравнить содержимое двух директорий

Возникла необходимость сравнить две директории по содержимому. Готового решения гугл не подсказал, пришлось городить собственное решение.

Исходный код

7 комментариев:

Анонимный комментирует...

> Готового решения гугл не подсказал

4.2!

и этот человек что-то говорил мне про велосипеды...
за 3 секунды гугления нашел такой вариант:

diff -r dir1 dir2

Владимир Попов комментирует...

картинка с Java тут не спроста ;)

Владимир Попов комментирует...

уточнил

Анонимный комментирует...

тогда другое дело ) хотя я бы не удивился, если бы ты стал писать отдельную программу для сравнению директорий. можешь считать это комплиментом )
а для указанной задачи, если просто надо сказать совпадают директории или нет по именам содержащихся в них файлов, я бы просто получил список всех файлов в обеих директориях (в классе IO есть такая функция :)), а потом сравнил оба списка. можно немного изменить функцию получения списка файлов и добавлять их имена в hashset, а не в list. тогда будет не нужна и отдельная функция сравнения - множества сравниваются функцией equals. другое дело, если директории содержат большое количество файлов, - тогда загонять все их имена в память, наверно, будет нецелесообразно.
хотя в инете встречаются и самопальные реализации того, что ты сделал.

Владимир Попов комментирует...

Нюанс в том, что директория может содержать поддиректории, содержимое которых тоже надо сравнить.

Анонимный комментирует...

ну так если сравнивать списки файлов, то этот список тоже формируется рекурсивно.

Vladimir Popov комментирует...

поясните мысль