Suppression d'un dossier vide

Contenu du snippet

Cette courte fonction permet de supprimer un dossier si et seulement si celui ci est vide.

La fonction retourne :
0 si le dossier n'existe pas ou est inaccessible
1 si la destruction réussie
2 si le dossier n'est pas vide

Source / Exemple :


function del_empty_folder ($folder) {
	if (is_dir($folder)) { // controle que le dossier existe                  
	    $i=0;
	    $fh=opendir($folder); // ouverture du dossier
	    while(($fichier = readdir($fh))!==false) { // parcours le dossier
	        $i++; // incremente a chaque élément trouvé
	        if ($i<=2) continue; // reboucle directement tant que l'index n'est pas representatif
	        return 2; // le dossier n'est pas vide
	    }
	    if ($i<=2) { // le dossier ne contient que 2 éléments (. et ..) donc il est vide :-)
	        closedir($fh); // fermeture du pointeur du dossier
	        rmdir($folder); // suppression du dossier
	        return 1; // dossier effacé
	    }                                              
	} else return 0; // le dossier n'existe pas ou est inaccessible
}

del_empty_folder('nom_du_dossier/');

Conclusion :


Rien de plus banal pour l'utilisation :

del_empty_folder('nom_du_dossier_a_supprimer');

J'ai fortement hésité avant de la poster ... beaucoup diront qu'il y en existe des milliers (pas si sur ...) et qu'elle est d'une simplicité enfantine, soit, mais si elle peut aider c'est déjà ça !!

############################################
Autre solution ultra épurée :

if (@!rmdir($folder)) echo 'le dossier n\'est pas vide';

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.