Задание №6
В данном задании необходимо написать программу, которая ищет дубликаты файлов в указанной директории и её поддиректориях.
В некоторых случаях, таких как, копирование одних и тех же файлов с фотоаппарата несколько раз в разные каталоги, скачивание одних и тех же документов из интернета несколько раз, копирование файлов, там где достаточно перемещения может возникать ситуация, когда на компьютере много одинаковых файлов
отличающихся лишь их именами и расположением. Иногда такие файлы могут занимать существенное место на диске. Предполагая, что пользователь столкнулся с такой проблемой, требуется написать программу, которая поможет пользователю найти дублирующиеся файлы и высвободить место.
Требования:
- Программа должна иметь графический интерфейс на базе библиотеки Qt Widgets. Использование других тулкитов требует предварительного согласования. Познакомиться с возможностями библиотеки Qt, можно используя секцию Welcome/Examples в Qt Creator или использование программы qtdemo. По этому адресу https://github.com/sorokin/dirdemo расположен простой пример программы работающей с директориями и имеющей графический интерфейс.
- Для работы с файлами разрешается использовать: Qt, std::filesystem, boost::filesystem либо POSIX-функции opendir/readdir/closedir.
Информация для размышления:
- В задании специально не специфицируется, как именно должен выглядеть интерфейс программы. Студентам предлагается самим подумать, какой интерфейс лучше всего подойдет для этой задачи.
- Предлагается подумать, но не обязательно обрабатывать каким-то особым образом наличие в файловой системе hardlink'ов и symlink'ов. Предлагается самостоятельно доопределить, что означает поиск дубликатов в присутствии hard- и symlink'ов.