Tecnología

Inicio

Cómo eliminar archivos duplicados en Java

Las fuentes comunes de espacio en disco desperdiciado son copias duplicadas del mismo archivo a través del sistema. Para evitar esto, se puede crear un script sencillo en Java para eliminar todas menos una copia de cada archivo descubierto. Este script se procederá a través de todos los archivos dentro de una carpeta determinada e inspeccionar de forma individual para determinar que son equivalentes. Esto podría ser una manera, por ejemplo, para borrar una carpeta de música que tiene varias entradas duplicadas.

Instrucciones

1 Abra un editor de texto. Cualquier editor de texto va a hacer, pero usted puede preferir utilizar un entorno de desarrollo integrado (IDE) NetBeans como para ahorrarse algunos pasos.

2 Pegue la siguiente estructura básica de la clase Java para eliminar archivos duplicados:

java.io.File importación;

java.io.FileNotFoundException importación;

java.util.Scanner importación;

DuplicateFileRemover public class {

public static boolean CompareFiles(File x, File y) {

}

principales argumentos (String []) {public static void

}

}

El código entrará en los dos métodos: CompareFiles y principal.

3 Rellene el código para el método CompareFiles:

public static boolean CompareFiles(File x, File y) {

tratar {

Escáner xs = nuevo escáner (x);

ys = escáner nuevo escáner (Y);

resultado booleano = true;

mientras que (resultado) {

si (xs.nextByte () = ys.nextByte) (!) resultado = false;

}

return resultado;

} Catch (FileNotFoundException e) {

System.out.println (e.getMessage ());

falso retorno;

}

}

Este método va a comparar los dos archivos que se adopte, byte a byte, para ver si contienen datos duplicados. Tan pronto como se descubre una diferencia, se informa de nuevo que los archivos no son los mismos. De lo contrario, se informa de que lo son.

4 Pegar en los datos para el método principal:

public static void main(String[] args) {

dir archivo = new File ( ".");

File [] = fileList dir.listFiles ();

for (int x = 0; x & lt; fileList.length; x ++) {

for (int y = x + 1; y & lt; fileList.length; y ++) {

si (CompareFiles (fileList [x], fileList [y])) {

fileList [x] .Delete ();

}

}

}

}

Este procede a través de todos los archivos en el directorio actual y pone a prueba cada uno contra los otros para ver si son los mismos. Si dos archivos son los mismos, el primero de los dos se ha suprimido.

Consejos y advertencias

  • Este script fallará si se ejecuta en una carpeta el usuario no tiene acceso de lectura a.