Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SUPPRESSION D'UN DOSSIER VIDE


Information sur la source

Description

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

  • 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/');
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';

 

Commentaires et avis

signaler à un administrateur
Commentaire de kohntark le 12/11/2005 19:17:43

Pourquoi ne pas créer une "CSlib PHP" dédier à ces courtes fonctions, certes simples, mais particulièrement utiles ?

Cela permettrait de gagner un temps précieux dans les développements et d'éviter de "desosser" des fonctions complexes qui renvoient des tas d'infos, juste pour en extraire ce type de source.

signaler à un administrateur
Commentaire de coucou747 le 13/11/2005 17:27:07

rmdir suffit pour faire ça non ?

signaler à un administrateur
Commentaire de FhX le 13/11/2005 18:48:56

J'épure au max :

function del_empty_folder ($folder) {
  if (is_dir($folder)) {
      $i=0;
      $fh=opendir($folder);
       while(($fichier = readdir($fh))!==false) {
        $i++;
        if ($i > 2) return 2;
       }

      closedir($fh);
      rmdir($folder);
      return 1;
      }
  } else {
    return 0;
  }
}
  
C'est plus lisible non ?

signaler à un administrateur
Commentaire de mariobotta le 14/11/2005 17:26:00

bonjour,

source très utile merci kohntark
pour répondre à coucou747
rmdir ne peut effacer qu'un dossier vide!
rmdir n'est pas suffisant car cette fonction ci vérifier si le dossier est vide ou non (avec une minimum de "boucle")et ne l'efface que si il est vide!

signaler à un administrateur
Commentaire de Zart le 15/11/2005 14:08:50

De toute façon il ne serait pas effacer... Mais il y aurait une erreur faites le test !

Sinon je suis pour faire une lib avec tout un tas de fonction mais faudrait morceler ça dans des fichiers! Je suis en train d'écrire des fonctions en particulier pour les fichiers (listages, récuperation des extension, etc..), je pense poser une source dans la semaine !

signaler à un administrateur
Commentaire de malalam le 16/11/2005 09:18:58 administrateur CS

Hello,

le test ?
if (is_dir ($dossier)) {
  if (!rmdir ($dossier)) {
    echo 'Le répertoire',$dossier, 'n\'a pas pu être effacé';
  }
else {
  echo $dossieur, ' n\'est pas un répertoire';
}

Pas d'erreur.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Gestion de fichiers [ par shadow1779 ] Bonjour,j'aimerai apprendre le plus possible sur la gestion de fichiers en php, c'est a dire:-suppression d'un fichier-création/suppression d'un dossi Suppression de dossier foireuse :s [ par hyipicai ] bonjour a toutes et tous, voila j'ai un souci en phpj'ai un explorateur de dossier qui me permet de creer des dossiers [code]umask(0777);if (!(mkdir($ pb de suppression de dossier [ par ronanf235 ] bonjourpetit post pour demander comment supprimer un dossier sous windows, ou plutot comment se debrouiller avec les droits...voici mon code de creati Suppression de données stockées dans une SessionID [ par MissFauxCuiR ] Je suis en train de programmer une vente en ligne et toutes les sélections sont stockées dans une session. Elles ne sont donc pas enregistrées dans un Comment ouvir 1 dossier a distance ????? [ par christ_sand ] Bonjour et merci a tous de votre Aideje dispose d'1 site espace membre chez Free ou je n'ai plus de place on ma aimablement prété de l'espace sur un a [ PHP ] [ Création de dossier et fichier ] [ UNIX ] [ par vvoisin ] Bonjour, J'ai un probléme avec mkdir(). Quand j'execute le code suivant sur mon pc sous easyphp, le repertoire est bien créé alors que sur mon serveur Suppression données table / SQL [ par zgrominet ] Bonjour,Quelquun peux mexpliquer pk je n'arrive pas à supprimer un enregistrement dans ma base de données SQL ??J'ai un message du forum que j voudrai suppression ds mysql à une heure précise [ par citizenh ] Bonjour,Est_il possible de déclencher une action sur une base mysql tous les jours à 3 heures du matinMerci Securisé dossier upload [ par hearty ] Salut a tous,en fait je me pose une question sur la securité d'un dossier servant à la reception de fichier uploadés.Pr uploader, le repertoire doit e Liste des fichiers d'un dossier [ par smasher81 ] Bonjour, encor une question oui ;) Pourriez vous m'aidez à avoir une liste des fichiers d'un dossier SANS les extentions..


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.