Dans cet article, je vais vous montrer comment supprimer des fichiers et des répertoires à l'aide d'un traitement récursif. Ceci est mon premier message, donc si vous avez des commentaires, veuillez commenter!
/**
*Supprimer les fichiers de manière récursive
* @fichier param Fichier ou répertoire à supprimer
*/
public static void deleteFile(File file) {
//Quitter si le fichier n'existe pas
if (!file.exists()) {
return;
}
//Supprimer l'enfant s'il s'agit d'un répertoire
if (file.isDirectory()) {
for (File child : file.listFiles()) {
deleteFile(child);
}
}
//Supprimer le fichier cible
file.delete();
}
S'il s'agit d'un répertoire, il peut être supprimé à l'état vide en supprimant d'abord l'objet fichier enfant.
Pendant un moment, j'étais content de pouvoir utiliser le traitement récursif, mais après tout il y avait beaucoup de pionniers ... lol C'est un gaspillage de finir avec ça, alors je vais en présenter un un peu plus avancé!
/**
*Ne comptez que le nombre de fichiers contenus dans un fichier ou un répertoire
* @fichier ou répertoire de fichier param
* @nombre de fichiers de retour
*/
public static int countFile(File file) {
int count = 0;
//Quitter si le fichier n'existe pas
if (!file.exists()) {
return count;
}
//S'il s'agit d'un répertoire, comptez les enfants de manière récursive,S'il s'agit d'un fichier, il se compte
if (file.isDirectory()) {
for (File child : file.listFiles()) {
count += countFile(child);
}
} else {
count = 1;
}
//Renvoyer le total
return count;
}
La méthode ci-dessus ne peut compter que le nombre de fichiers qui existent sous l'objet argument! Outre l'aspect pratique de cette méthode, j'aime le traitement récursif car il ressemble à de la programmation.
Recommended Posts