IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Supprimer répertoire, sous répertoires, fichiers... [Sources]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 112
    Points : 52
    Points
    52
    Par défaut Supprimer répertoire, sous répertoires, fichiers...
    Salut,
    je cherche une solution pour vider le contenu d'un répertoire.
    Biensur j'arrive a supprimer un répertoire mais pas quand celui ci n'est pas vide.

    J'recherche une fonction qu'arrive a supprimer tt le contenu meme si j'ai plusieurs sous repertoire...

    Pour le moment j'ai trouvé ca mais j'ai du mal a bien comprendre la logique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    function rmdirr($dirname)
    {
    	$dirname="../".$dirname;
        // Sanity check
        if (!file_exists($dirname)) {
            return false;
        }
     
        // Simple delete for a file
        if (is_file($dirname)) {
            return unlink($dirname);
        }
     
        // Loop through the folder
        $dir = dir($dirname);
        while (false !== $entry = $dir->read()) {
            // Skip pointers
            if ($entry == '.' || $entry == '..') {
                continue;
            }
            // Deep delete directories      
            if (is_dir("$dirname/$entry")) {
                rmdirr("$dirname/$entry");
            } else {
                unlink("$dirname/$entry");
            }
        }
     
        // Clean up
     
        $dir->close();
    	$dir->close();
        return rmdir($dirname);
    }
    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    Hello,

    voici une autre fonction faisant cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
        function deltree($dossier){
            if(($dir=opendir($dossier))===false)
                return;
     
            while($name=readdir($dir)){
                if($name==='.' or $name==='..')
                    continue;
                $full_name=$dossier.'/'.$name;
     
                if(is_dir($full_name))
                    deltree($full_name);
                else unlink($full_name);
                }
     
            closedir($dir);
     
            @rmdir($dossier);
            }
    Le code est assez clair et court je pense pour en comprendre le fonctionnement
    Google is watching you !

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 112
    Points : 52
    Points
    52
    Par défaut
    MERCI c nettement plus clair
    par contre,
    j'ai un warning: OpenDir: Invalid argument (errno 22)

    de plus, mon rep se trouve dans l'arboresence supérieur donc je fais un:
    $dossier = "../".$dossier en début de fonction.
    C'est bon???

    encore merci

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2003
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 112
    Points : 52
    Points
    52
    Par défaut
    désolé!
    c'est bon, ca fonctionne parfaitement.
    J'ai fait un: deltree("../".$monrepadel);

    MERCI POUR TOUT

  5. #5
    Membre éclairé
    Avatar de Kioob
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    550
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 550
    Points : 764
    Points
    764
    Par défaut
    de rien
    Google is watching you !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 97
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    J'utilise aussi ce script, il supprime bien tous le contenu d'un répertoire mais pas le répertoire principal.

    cela indique "Acces denied" alors que le chmod est sur 777.

    Quelqu'un aurait-il une idée ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA-*]Lister les sous-répertoires et les fichiers de ceux-ci
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 8
    Dernier message: 19/01/2017, 19h05
  2. Faire une matrice de répertoire, sous-répertoire et fichier
    Par pianetdi dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 28/01/2014, 08h05
  3. [XL-2003] Récupérer répertoire et sous répertoire sans les fichiers
    Par dlight dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/05/2013, 19h13
  4. [VBA-*]Lister les sous-répertoires et les fichiers de ceux-ci
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/04/2007, 22h41
  5. Réponses: 1
    Dernier message: 31/10/2006, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo