проект в Java Skill Tree

Поиск дубликатов файлов

Создайте программу Java для поиска дубликатов без изменения оригиналов, подтвердите равенство байтами и сохраните полные группы путей.

ПроектJava

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Поиск дубликатов файлов — практический проект на Java для тех, кто готов работать с реальным содержимым файлов. Вы создадите многократно используемую проверяющую программу, которая только читает исходные файлы, находит полные группы одинаковых файлов и сохраняет каждый исходный путь. Разные имена могут скрывать одинаковые байты, а совпадающие имена или размеры — различное содержимое.

Курс включает две пошаговые лабораторные работы и одно самостоятельное задание. Сначала вы прочитаете двоичные потоки и сохраните полный перечень путей. Затем сузите круг кандидатов по размеру и отпечатку SHA-256, подтвердите равенство сравнением байтов и заново создадите отчёт после изменения учебной копии. Задание применяет те же механизмы к другой папке с материалами. Каждая работа начинается независимо. Отведите около 150 минут: это авторская оценка с учётом чтения и обычных исправлений.

Чему вы научитесь

После завершения курса вы сможете:

  • читать двоичные файлы с try-with-resources, используя фактическую длину каждой операции чтения;
  • вычислять отпечатки SHA-256 для кандидатов и учитывать каждый путь, включая пустые файлы и неполные последние буферы;
  • подтверждать равенство сравнением реальных байтов, не принимая имена, размеры или хеши за доказательство;
  • сохранять всех участников группы дубликатов, в том числе группы из трёх файлов и более, исключая уникальные файлы;
  • заново строить актуальный отчёт после изменения учебного файла, сохраняя все оригиналы;
  • записывать отчёты за пределами сканируемого дерева и сообщать об ошибке для нечитаемых или неподдерживаемых входных данных.

Для кого этот курс

Курс предназначен для изучающих Java, которые хотят объединить стандартные средства работы с файлами, коллекции и исключения в полезной терминальной программе.

Предварительные требования: Классы, методы, базовые коллекции, исключения, начальное чтение файлов на Java и простая навигация в терминале. Управление общественным пунктом выдачи инструментов, особенно вторая пошаговая работа, даёт основы чтения файлов и исключений ввода-вывода; подойдут и эквивалентные знания. Этот курс перед использованием объясняет двоичные потоки, число прочитанных байтов, закрытие ресурсов и различие между кандидатами и сравнением байтов.

Учебная среда: LabEx предоставляет WebIDE в браузере со встроенным терминалом, компилятором Java, начальным кодом и настоящими файлами-примерами, включая небольшие PNG-изображения. Программу можно запускать и исследовать файлы без локальной установки Java. Команды, подписи и вывод остаются на английском.

Часто задаваемые вопросы

Удаляет ли программа дубликаты?

Нет. Результат — проверяющая программа и полный отчёт по группам для просмотра. Все оригиналы сохраняются; автоматическое удаление, восстановление и очистка диска не входят в проект.

Зачем сравнивать байты после вычисления отпечатка?

Размер и SHA-256 помогают выбрать кандидатов. Окончательное решение основано на реальном содержимом, поэтому программа сохраняет каждый совпадающий путь и разделяет файлы одинакового размера с разными байтами. Курс не считает хеш математическим доказательством равенства.

Какие входные данные поддерживаются?

Обычные файлы и каталоги, которые не меняются во время запуска, включая пробелы и имена в UTF-8. Символические ссылки, специальные файлы и пути с табуляциями или переводами строк отклоняются. Ошибка чтения не должна выглядеть как полный успешный обход. Отчёты находятся вне входного дерева. У каждой работы свои данные, файлы прежней VM не нужны; гарантий согласованного снимка при параллельных изменениях проект не даёт.

Преподаватель

labby
Labby
Labby is the LabEx teacher.

Рекомендовано для вас

no data