begin process at 2010 03 21 10:08:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

 > SUPPRESSION D'UN DOSSIER VIDE

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 !!

############################################
A utre solution ultra épurée :

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


 Sources de la même categorie

Source avec Zip EFFACER LES FICHIERS IMAGES ( .PNG ), D'UN RÉPERTOIRE TEMPS ... par christophe0511
COURTE ET SIMPLE FONCTION RÉCURSIVE POUR LECTURE DE RÉPERTOI... par mbdx
Source avec Zip Source avec une capture GESTIONNAIRE DE FICHIERS | MYSQL PHP 5.X {NEMENTON PHP MANA... par Nementon
Source avec Zip Source avec une capture LISTE REPERTOIRE (DIR EN PHP) par mephistope
Source avec Zip LIRE UNIQUEMENT LES X DERNIERS OCTETS D'UN FICHIER DISTANT (... par Equilibrius

 Sources en rapport avec celle ci

EFFACER DOSSIERS ET FICHIERS RÉCALCITRANTS par Stephane33
NETTOYAGE DE DOSSIERS DE FAÇON RÉCURSIVE OU NON AVEC FILTRAG... par dark_nemo
Source avec Zip Source avec une capture CONSULTER, INSERER, SUPPRIMER SIMPLEMENT par awaclid
Source avec Zip Source avec une capture LISTER DOSSIER AVEC UN ARBRE / TREE EN PHP / JAVASCRIPT par cyril6789
SUPPRIMER 1 U PLUSIEURS RÉPERTOIRES ET TOUT CE QU'IL Y A DED... par malalam

Commentaires et avis

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.

Commentaire de coucou747 le 13/11/2005 17:27:07

rmdir suffit pour faire ça non ?

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 ?

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!

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 !

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

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,232 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales