Nwlapcug.com


Come rimuovere i file duplicati in Java

Fonti comuni di spazio su disco sprecato sono copie dello stesso file in tutto il sistema. Per evitare questo problema, è possibile creare un semplice script in Java per rimuovere tutti solo una copia di ogni file scoperto. Questo script verrà procedere attraverso tutti i file all'interno di una determinata cartella e controllarli singolarmente per determinare quali sono equivalenti. Questo potrebbe essere un modo, ad esempio, per cancellare una cartella di musica che ha più voci duplicate.

Istruzioni

1

Aprire un editor di testo. Farà qualsiasi editor di testo, ma è preferibile utilizzare un ambiente di sviluppo integrato (IDE) come Netbeans per risparmiare alcuni passaggi.

2

Incollare la seguente struttura di base della classe Java per rimuovere i file duplicati:

java.io.File importazione;

importare java.io.FileNotFoundException;

importazione java.util.Scanner;

public class DuplicateFileRemover {

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

}

public static void main(String[] args) {

}

}

Il codice entrerà in due metodi: CompareFiles e principale.

3

Inserire il codice per il metodo di CompareFiles:

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

try {

Scanner xs = new Scanner(x);

Scanner ys = new Scanner(y);

boolean result = true;

while (result) {

if (xs.nextByte() != ys.nextByte()) result = false;

}

return result;

} catch (FileNotFoundException e) {

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

return false;

}

}

Questo metodo metterà a confronto i due file dati ad esso, byte per byte, per vedere se contengono dati duplicati. Non appena scopre una differenza, riporta indietro che i file non sono lo stesso. In caso contrario, segnala che sono.

4

Incollare i dati per il metodo main:

public static void main(String[] args) {

File dir = new File(".");

File[] fileList = dir.listFiles();

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

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

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

fileList[x].delete();

}

}

}

}

Questo procede attraverso tutti i file nella directory corrente e test ogni uno contro gli altri per vedere se sono la stessa cosa. Se due file sono uguali, viene eliminato il primo dei due.

Consigli & Avvertenze

  • Questo script avrà esito negativo se viene eseguito su una cartella, a che l'utente non dispone di accesso in lettura e scrittura.