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.