Я ищу существующие идеи / решения проблемы поиска различий между двумя каталогами. В частности, как определить файлы, которые могли быть изменены, переименованы и перемещены.
Краткий список вещей, которые я рассмотрел:
- попробуйте создать пару файлов, отсутствующих в каталоге A
с новыми файлами в DIR B с помощью некоторых
эвристика, такая как 75% совпадения в
содержание. Это просто не кажется
достаточно надежный (проблемные случаи включают в себя:
значительные изменения в содержании,
сжатие или шифрование, возможно
несколько матчей)
- использовать альтернативные потоки данных для добавления идентификатора в каждый файл. Это будет работать только на NTFS.
- добавить колонтитулы к каждому файлу, содержащему и id. Нет никакого способа гарантировать, что верхний / нижний колонтитул не повредит файл.
- запрашивать ввод данных пользователем для каждого изменения, чтобы определить, действительно ли файл удален или просто перемещен. Это слишком сложно для пользователя.
- требует, чтобы пользователь переименовывал / перемещал файлы только с помощью специальных команд, которые будут отслеживать такие изменения. Это слишком сложно для пользователя.
- настройка наблюдателя файловой системы для отслеживания изменений на лету. Несколько проблем (наблюдатель должен работать постоянно, зависит от платформы ...)
Любые идеи приветствуются ...