Entfernen von doppelten Dateien in Java

June 30

Gemeinsame Quellen der verschwendeten Speicherplatz sind doppelte Kopien derselben Datei im System. Um dies zu verhindern, können Sie ein einfaches Skript in Java alle aber eine Kopie jeder Datei entdeckt entfernen erstellen. Dieses Skript wird durchlaufen alle Dateien innerhalb eines bestimmten Ordners und Inspizieren sie individuell bestimmen, welche gleichwertig sind. Dies wäre eine Möglichkeit, z. B. ein Musikordner zu löschen, die mehrere doppelte Einträge hat.

Anweisungen

1 Öffnen Sie einen Texteditor. Wird einem beliebigen Texteditor, aber möchten Sie möglicherweise eine integrierte Entwicklungsumgebung (IDE) wie Netbeans verwenden, um sich einige Schritte sparen.

2 Fügen Sie die folgende Grundstruktur der Java-Klasse, um doppelte Dateien zu entfernen:

Import java.io.File;

Importieren Sie java.io.FileNotFoundException;

Import java.util.Scanner;

publicclass DuplicateFileRemover {}

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

}

public static void main(String[] args) {

}

}

Der Code wird in die beiden Methoden gehen: CompareFiles und wichtigsten.

3 Geben Sie den Code für die CompareFiles-Methode:

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;

}

}

Diese Methode wird vergleichen die beiden Dateien, um festzustellen, ob diese doppelte Daten enthalten, die ihm, Byte für Byte gegeben. Sobald sie einen Unterschied feststellt, meldet es zurück, dass die Dateien nicht identisch sind. Andernfalls meldet es, dass sie sind.

4 Fügen Sie in die Daten für die main-Methode:

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();

}

}

}

}

Diese durchläuft jede Datei im aktuellen Verzeichnis und testet jeweils gegen die anderen zu sehen, ob sie identisch sind. Wenn zwei Dateien identisch sind, wird die erste der beiden gelöscht.

Tipps & Warnungen

  • Dieses Skript schlägt fehl, wenn er auf einen Ordner ausgeführt wird, die der Benutzer keinen Lese- und Schreibzugriff auf.