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 :

Suppression récursive de dossiers


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 46
    Par défaut Suppression récursive de dossiers
    Bonjour à tous,
    J'ai créer une petite fonction pour créer un dossier avec un sous-dossier vignettes à l'intérieur qui fonctionne bien :

    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
     
    function creer_dossier($pChemin,$pDossier,$pThumbnails=""){
    	$creationDossier = false;
    	if(!is_dir($pChemin)){
    		$creationDossier = false;
    	}else{
    		umask(0000);
    		$CreerDossier = @mkdir($pChemin.'/'.$pDossier, 0777);
    		if($pThumbnails == true){
    			$CreerDossierThumbnails = @mkdir($pChemin.'/'.$pDossier.'/thumbnails/', 0777);
    		}
    	}
    	if($CreerDossier && $CreerDossierThumbnails){
    		$creationDossier = true;
    	}else{
    		$creationDossier = false;
    	}
    	return $creationDossier;
    }
    et une autre pour le supprimer mais qui ne marche pas :

    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
     
    function delete_dossier($pCheminDossier){
    	$delete = false;
    	if( !preg_match( "/^.*\/$/", $pCheminDossier ) ){ $pCheminDossier .= '/'; }
    	$handle = @opendir( $pCheminDossier );
    	if( $handle != false ){
    		while( $item = readdir($handle) ){
    			if($item != "." && $item != ".."){
    				if( is_dir( $pCheminDossier.$item ) ){
    					delete_dossier( $pCheminDossier.$item );
    				}else{
    					unlink( $pCheminDossier.$item );
    	   			}
    	  		}
    		closedir($handle);
    	   	$delete = rmdir( $pCheminDossier );
    		}
    		$delete = true;
    	}else{
    		$delete = false;
    	}
    	return $delete;
    }
    j'ai un message : directory no empty
    Pouvez-vous m'aider ? Merci

  2. #2
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    Si j'ai bien compris tu veux supprimer un dossier et tout ce qu'il y a dedans :
    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 rmdir_recurse($path)
    {
        $path= rtrim($path, '/').'/';
        $handle = opendir($path);
        for (;false !== ($file = readdir($handle));)
            if($file != "." and $file != ".." )
            {
                $fullpath= $path.$file;
                if( is_dir($fullpath) )
                {
                    rmdir_recurse($fullpath);
                    rmdir($fullpath);
                }
                else
                  unlink($fullpath);
            }
        closedir($handle);
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 46
    Par défaut
    apparemment ca marche mais il ne supprime pas le dossier.

    ex :
    dossier1 -> sous-dossier_vignettes -> image

    il supprime bien le sous-dossier_vignettes et l'image mais pas le dossier1

    merci

  4. #4
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    bah dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function rm_tout_meme_le_dossier_courant($path)
    {
      rmdir_recurse($path);
      rmdir($path);
    }

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

Discussions similaires

  1. [Batch] suppression récursive d'un dossier spécifique
    Par cornnery dans le forum Scripts/Batch
    Réponses: 20
    Dernier message: 30/03/2009, 20h54
  2. [batch] suppression des sous-dossiers
    Par mathieu_r dans le forum Windows
    Réponses: 1
    Dernier message: 12/03/2007, 20h53
  3. WIn XP Registre Suppression onglet option dossier
    Par edmond1 dans le forum Windows XP
    Réponses: 2
    Dernier message: 08/01/2007, 21h31
  4. [FTP] suppression d'un dossier en recursif
    Par Joeleclems dans le forum Langage
    Réponses: 2
    Dernier message: 27/11/2006, 10h20
  5. [FTP] Suppression d'un dossier
    Par Belenos dans le forum Langage
    Réponses: 5
    Dernier message: 06/07/2006, 00h19

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