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 !

EFFACER RÉCURSIVEMENT UN RÉPERTOIRE


Information sur la source

Catégorie :Fichier / Disque Niveau : Expert Date de création : 25/05/2001 Vu : 8 891

Note :
6 / 10 - par 6 personnes
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Cette fonction permet d'effacer un répertoire présent sur votre serveur avec tout ce qui se trouve à l'intérieur (y compris les sous-répertoires)
 

Source

  • <?php
  • function rdel($path, $deldir = true) {
  • // $path est le chemin relatif au fichier php
  • // $deldir (paramètre optionel, par défaut à vrai) permet de dire si vous souhaitez supprimer le répertoire (vrai) ou le vider uniquement (faux)
  • // on vérifie d'abord que le nom du repertoire contient "/" à la fin, sinon on le lui rajoute
  • if ($path[strlen($path)-1] != "/")
  • $path .= "/";
  • if (is_dir($path)) {
  • $d = opendir($path);
  • while ($f = readdir($d)) {
  • if ($f != "." && $f != "..") {
  • $rf = $path . $f; // chemin relatif au fichier php
  • if (is_dir($rf)) // si c'est un répertoire on appel récursivement la fonction
  • rdel($rf);
  • else // sinon on efface le fichier
  • unlink($rf);
  • }
  • }
  • closedir($d);
  • if ($deldir) // si $deldir est vrai on efface le répertoire
  • rmdir($path);
  • }
  • else {
  • unlink($path);
  • }
  • }
  • ?>
<?php
function rdel($path, $deldir = true) {
        // $path est le chemin relatif au fichier php
        // $deldir (paramètre optionel, par défaut à vrai) permet de dire si vous souhaitez supprimer le répertoire (vrai) ou le vider uniquement (faux)

        // on vérifie d'abord que le nom du repertoire contient "/" à la fin, sinon on le lui rajoute
        if ($path[strlen($path)-1] != "/")
                $path .= "/";

        if (is_dir($path)) {
                $d = opendir($path);

                while ($f = readdir($d)) {
                        if ($f != "." && $f != "..") {
                                $rf = $path . $f; // chemin relatif au fichier php

                                if (is_dir($rf)) // si c'est un répertoire on appel récursivement la fonction
                                        rdel($rf);
                                else // sinon on efface le fichier
                                        unlink($rf);
                        }
                }
                closedir($d);

                if ($deldir) // si $deldir est vrai on efface le répertoire
                        rmdir($path);
        }
        else {
                unlink($path);
        }
}
?>   

Conclusion

Attention, il est possible que sous Windows il faille modifier le code pour les délimiteurs de répertoire, remplacez alors les "/" par des "\\"
 

Commentaires et avis

signaler à un administrateur
Commentaire de watoowatoo le 16/01/2003 23:21:00

Plus simple encore : exec ("rm -Rf monrepertoire");

signaler à un administrateur
Commentaire de debhian le 31/07/2003 19:29:22

"exec ("rm -Rf monrepertoire");"
sur un hebergement windows, ou quand la fonction est interdit, sa doit bien marché dis donc ...

"Ptet pas nivo 3 qd mm"
kel genre de code serai nivo 3 ? car on ma dit pareil et je vois pas de source plus compliquer que ce que je vois ..

signaler à un administrateur
Commentaire de Sparco le 26/08/2003 19:36:11

q? -&gt;est-ce que on peut faire une suppression sélective
style que les fichiers txt ?
merci

signaler à un administrateur
Commentaire de Tutti10 le 02/09/2003 19:15:16

ça marche très bien. (même si j'ai pa tt compris en détail :p)
Je mets 9.

signaler à un administrateur
Commentaire de coucou747 le 12/09/2005 21:08:46

salut, tu ne vérifie pas les droits, donc, la sortie de unlink peut être false, donc, tu n'est pas sur que ton fichier soit suprimé... (auquel cas, renvoyer false et stoper la supression...)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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,125 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é.