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

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

Исходный код

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

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

    4.2!

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

    diff -r dir1 dir2

    ОтветитьУдалить
    Ответы
    1. картинка с Java тут не спроста ;)

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

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

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

    ОтветитьУдалить

Ваше мнение мне искренне интересно. Смелее!

Технологии Blogger.