projeto em Java Skill Tree

Encontrar arquivos duplicados

Crie um verificador Java de somente leitura, confirme arquivos iguais pelos bytes e salve grupos completos de caminhos preservando todos os originais.

ProjetoJava

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Introdução

Encontrar arquivos duplicados é um projeto prático de Java para quem está pronto para trabalhar com o conteúdo real dos arquivos. Você criará um verificador reutilizável de somente leitura que encontra grupos completos de arquivos iguais, preservando cada caminho original. Nomes diferentes podem esconder bytes idênticos; nomes ou tamanhos iguais podem esconder conteúdos distintos.

O curso contém dois laboratórios guiados e um desafio. Primeiro, você lerá fluxos binários e salvará um inventário completo de caminhos. Depois, usará tamanho e impressões digitais SHA-256 para reduzir os candidatos, confirmará a igualdade comparando bytes reais e recriará o relatório após alterar uma cópia de prática. O desafio aplica os mesmos mecanismos a outro acervo. Cada laboratório começa de forma independente. Reserve cerca de 150 minutos, uma estimativa do autor que inclui leitura e correções comuns.

O que você aprenderá

Ao concluir o curso, você poderá:

  • ler arquivos binários com try-with-resources e usar o comprimento real retornado em cada leitura;
  • calcular impressões digitais SHA-256 para candidatos e inventariar todos os caminhos, incluindo arquivos vazios e buffers finais parciais;
  • confirmar a igualdade comparando bytes reais, sem tratar nomes, tamanhos ou resumos como prova;
  • manter todos os membros de um grupo de arquivos duplicados, inclusive grupos com três ou mais arquivos, deixando de fora os arquivos únicos;
  • recriar um relatório atual após mudar um arquivo de prática, preservando todos os originais;
  • gravar relatórios fora da árvore examinada e informar falhas para entradas ilegíveis ou não suportadas.

Para quem é este curso

Este curso é indicado para estudantes de Java que desejam combinar tratamento de arquivos da biblioteca padrão, coleções e exceções em um programa de terminal útil.

Pré-requisitos: Classes, métodos, coleções básicas, exceções, leitura elementar de arquivos em Java e navegação básica no terminal. Gerenciar uma biblioteca comunitária de ferramentas, especialmente o segundo laboratório guiado, oferece a base de leitura de arquivos e exceções de E/S; conhecimentos equivalentes também servem. Este curso explica fluxos binários, contagens de leitura, fechamento de recursos e a diferença entre candidatos e comparação de bytes antes do uso.

Ambiente de aprendizagem: A LabEx fornece um WebIDE no navegador com terminal integrado, compilador Java, código inicial e arquivos reais de exemplo, incluindo pequenas imagens PNG. Você pode executar o programa e examinar os arquivos sem instalar Java localmente. Os comandos, rótulos e resultados permanecem em inglês.

Perguntas frequentes

O programa exclui os arquivos duplicados?

Não. A entrega é um verificador e um relatório completo de grupos para revisão. Todos os originais são preservados; exclusão automática, reparo e limpeza de disco estão fora do projeto.

Por que comparar bytes depois de calcular uma impressão digital?

O tamanho e o SHA-256 ajudam a selecionar candidatos. A decisão final vem da comparação do conteúdo real, mantendo todos os caminhos iguais e separando arquivos de mesmo tamanho com conteúdo diferente. O curso não considera um resumo uma prova matemática de igualdade.

Quais entradas o projeto aceita?

Arquivos e diretórios comuns que permanecem estáveis durante a execução, incluindo espaços e nomes UTF-8. Links simbólicos, arquivos especiais e caminhos com tabulações ou quebras de linha são rejeitados. Uma falha de leitura não pode parecer uma varredura completa bem-sucedida. Os relatórios ficam fora da árvore de entrada. Cada laboratório tem seus próprios dados e não precisa de arquivos de uma VM anterior; o projeto não garante instantâneos consistentes durante alterações concorrentes.

Professor

labby
Labby
Labby is the LabEx teacher.

Recomendado para Você

no data