Löschen von Dateien mit rekursiver Verarbeitung [Java]

Einführung

In diesem Artikel werde ich Ihnen zeigen, wie Sie Dateien und Verzeichnisse mithilfe der rekursiven Verarbeitung löschen. Dies ist mein erster Beitrag. Wenn Sie also Kommentare haben, kommentieren Sie diese bitte!

Implementierung

/**
 *Dateien rekursiv löschen
 * @Parameterdatei Datei oder Verzeichnis zum Löschen
 */
public static void deleteFile(File file) {
		
	//Beenden Sie, wenn die Datei nicht vorhanden ist
	if (!file.exists()) {
		return;
	}	
	//Löschen Sie das untergeordnete Element, wenn es sich um ein Verzeichnis handelt
	if (file.isDirectory()) {
		for (File child : file.listFiles()) {
			deleteFile(child);
		}
	}		
	//Löschen Sie die Zieldatei
	file.delete();
}

Wenn es sich um ein Verzeichnis handelt, kann es in einem leeren Zustand gelöscht werden, indem zuerst das untergeordnete Dateiobjekt gelöscht wird.

Bonus

Für eine Weile war ich froh, rekursive Verarbeitung verwenden zu können, aber schließlich gab es viele Pioniere ... lol Es ist eine Verschwendung, damit zu enden, also werde ich eine etwas fortgeschrittenere vorstellen!

/**
 *Zählen Sie nur die Anzahl der Dateien, die in einer Datei oder einem Verzeichnis enthalten sind
 * @Parameterdatei Datei oder Verzeichnis
 * @Anzahl der Rückgabedateien
 */
public static int countFile(File file) {				
	int count = 0;	
	//Beenden Sie, wenn die Datei nicht vorhanden ist
	if (!file.exists()) {
		return count;
	}
	//Wenn es sich um ein Verzeichnis handelt, zählen Sie die untergeordneten Elemente rekursiv,Wenn es sich um eine Datei handelt, zählt sie sich selbst
	if (file.isDirectory()) {
		for (File child : file.listFiles()) {
			count += countFile(child);
		}
	} else {
		count = 1;
	}
	//Geben Sie die Summe zurück
	return count;
}

Die obige Methode kann nur die Anzahl der Dateien zählen, die unter dem Argumentobjekt vorhanden sind! Abgesehen von der Praktikabilität dieser Methode mag ich rekursive Verarbeitung, weil es sich wie Programmieren anfühlt.

Recommended Posts

Löschen von Dateien mit rekursiver Verarbeitung [Java]
Datenverarbeitung mit der Stream-API von Java 8
Java-Thread-Verarbeitung
Java-String-Verarbeitung
[Java] Stream-Verarbeitung
Java iterativer Prozess
Sortieren mit Java-Komparator
Schrottpraxis mit Java ②
Schrottpraxis mit Java ①
JAVA-Konstruktoraufrufverarbeitung
Java zufällig, verschiedene Verarbeitung
[Java] Entwicklung mit mehreren Dateien mittels Paket und Import
So spielen Sie eine MIDI-Datei mit der Java Sound API ab
Versuchen Sie es mit RocksDB mit Java
Lesen Sie Binärdateien in Java 1
[Java] Implementierungsmethode für die Timer-Verarbeitung
Lesen Sie Binärdateien in Java 2
Verwenden von Mapper mit Java (Spring)
Gemessene Parallelverarbeitung mit Java
Ich habe versucht, Java REPL zu verwenden
Grundlegendes zur Java-Parallelverarbeitung (Einführung)
Verwenden von Docker von Java Gradle
[Swift] Asynchrone Verarbeitung mit PromiseKit
[Verarbeitung] Versuchen Sie es mit GT Force.
CSV-Ausgabeverarbeitung mit Super-CSV
Löschen von Exif-Informationen mit Sanselan
Machen Sie einen Diamanten mit Java
Zusammenfassung der Java-Fehlerverarbeitung
Blasensortierung mit ArrayList (JAVA)