Encontrar archivos duplicados es un proyecto práctico de Java para quienes desean trabajar con el contenido real de los archivos. Construirás un comprobador reutilizable de solo lectura que encuentra grupos completos de archivos iguales y conserva todas las rutas originales. Nombres distintos pueden ocultar bytes idénticos; nombres o tamaños iguales pueden ocultar contenido diferente.
El curso contiene dos laboratorios guiados y un desafío. Primero leerás flujos binarios y guardarás un inventario completo de rutas. Después usarás el tamaño y las huellas SHA-256 para reducir los candidatos, confirmarás la igualdad comparando bytes y regenerarás el informe tras cambiar una copia de práctica. El desafío aplica los mismos mecanismos a otra colección de archivos. Cada laboratorio comienza de forma independiente. Calcula unos 150 minutos, una estimación del autor que incluye lectura y correcciones habituales.
Lo que aprenderás
Al completar el curso, podrás:
- leer archivos binarios con
try-with-resourcesy utilizar la longitud real devuelta por cada lectura; - calcular huellas SHA-256 para candidatos e inventariar todas las rutas, incluidos archivos vacíos y bloques finales parciales;
- confirmar la igualdad comparando bytes reales, sin tratar nombres, tamaños o resúmenes como prueba;
- conservar todos los miembros de cada grupo de duplicados, incluidos grupos de tres o más, y excluir los archivos únicos;
- regenerar un informe actualizado tras cambiar un archivo de práctica, conservando todos los originales;
- escribir los informes fuera del árbol examinado y señalar como fallos las entradas ilegibles o no admitidas.
A quién va dirigido este curso
Este curso está pensado para estudiantes de Java que desean combinar archivos de la biblioteca estándar, colecciones y excepciones en un programa de terminal útil.
Requisitos previos: Clases, métodos, colecciones básicas, excepciones, lectura elemental de archivos en Java y navegación básica en la terminal. Gestionar una biblioteca comunitaria de herramientas, especialmente su segundo laboratorio guiado, proporciona la base de lectura de archivos y excepciones de E/S; también sirven conocimientos equivalentes. Este curso explica antes de usarlos los flujos binarios, los recuentos leídos, el cierre de recursos y la diferencia entre candidatos y comparación de bytes.
Entorno de aprendizaje: LabEx proporciona un WebIDE en el navegador con terminal integrada, compilador Java, código inicial y archivos reales de muestra, incluidas pequeñas imágenes PNG. Puedes ejecutar el programa e inspeccionar los archivos sin instalar Java localmente. Los comandos, las etiquetas y la salida permanecen en inglés.
Preguntas frecuentes
¿El programa eliminará los archivos duplicados?
No. El resultado es un comprobador y un informe completo de grupos para su revisión. Se conservan todos los originales; la eliminación automática, la reparación y la limpieza del disco quedan fuera del proyecto.
¿Por qué comparar bytes después de calcular una huella?
El tamaño y SHA-256 ayudan a seleccionar candidatos. La decisión final proviene de comparar el contenido real, para conservar todas las rutas iguales y separar archivos del mismo tamaño con contenido distinto. El curso no considera un resumen una prueba matemática de igualdad.
¿Qué entradas admite el proyecto?
Archivos y directorios ordinarios que permanecen estables durante el análisis, con espacios y nombres UTF-8 incluidos. Se rechazan enlaces simbólicos, archivos especiales y rutas con tabuladores o saltos de línea. Un fallo de lectura no debe parecer un análisis completo correcto. Los informes quedan fuera del árbol de entrada. Cada laboratorio aporta sus datos y no necesita archivos de una VM anterior; el proyecto no garantiza instantáneas concurrentes.

