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!
/**
*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.
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