Vous êtes ici Codes PHP et MySQL > Fichiers-Répertoires > Efface un répertoire et son contenu

 

Efface un répertoire et son contenu

Efface un répertoire avec tous ses fichiers de manière récursive inclus les sous-répertoires.
 
midi20
[4] sources en PHP voir
Code vu 12323 fois
Enregistré le 25 Juil 2006
  • Digg ce code sur digg.com
  • Bookmark ce code sur del.icio.us
  • Bookmark ce code sur Google
  • Bookmark ce code sur Yahoo
  • Ajoute Efface un répertoire et son contenu
  • Partage ce code sur Facebook
 
 
 
 

Code Source


01.
02.
03.
04.
05.
06.
07.
08.
09.
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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
 
<?php
/******************************************************************************/
/*                                                                            */
/*                       __        ____                                       */
/*                 ___  / /  ___  / __/__  __ _____________ ___               */
/*                / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-<               */
/*               / .__/_//_/ .__/___/\___/\_,_/_/  \__/\__/___/               */
/*              /_/       /_/                                                 */
/*                                                                            */
/*                                                                            */
/******************************************************************************/
/*                                                                            */
/* Titre          : Efface un répertoire et son contenu                       */
/*                                                                            */
/* URL            : http://www.phpsources.org/scripts176-PHP.htm              */
/* Auteur         : midi20                                                    */
/* Date édition   : 25 Juil 2006                                              */
/*                                                                            */
/******************************************************************************/


    function sup_repertoire($chemin) {

        // vérifie si le nom du repertoire contient "/" à la fin
        if ($chemin[strlen($chemin)-1] != '/'// place le pointeur en fin d'url
           $chemin .= '/'; } // rajoute '/'

        if (is_dir($chemin)) {
             $sq opendir($chemin); // lecture
             while ($f readdir($sq)) {
             if ($f != '.' && $f != '..')
             {
             $fichier $chemin.$f// chemin fichier
             if (is_dir($fichier))
             {sup_repertoire($fichier);} // rapel la fonction de manière récursive
             else
             {unlink($fichier);} // sup le fichier
             }
                }
                closedir($d);
                rmdir($chemin); // sup le répertoire
                             }
        else {
                unlink($chemin);  // sup le fichier
             }
       }

?>


 

Fonctions du code

: Calcule la taille d'une chaîne - (PHP 4, PHP 5)
: Indique si le fichier est un dossier - (PHP 4, PHP 5)
: - (PHP 4, PHP 5)
: Lit une entrée du dossier - (PHP 4, PHP 5)
: Efface un fichier - (PHP 4, PHP 5)
: Ferme le pointeur sur le dossier - (PHP 4, PHP 5)
: Efface un dossier - (PHP 4, PHP 5)
Commentaires
il faut modifier closedir($d);__> closedir($sq );

et fair un test pour n'est pas effacer le repertoire parent s'il le repertoire désiré et dans un autre reperoire

code corrigé

function sup_repertoire($chemin) {
// vérifie si le nom du repertoire contient "/" à la fin
if ($chemin[strlen($chemin)-1] != '/') // place le pointeur en fin d'url
{ $chemin .= '/'; } // rajoute '/'

if (is_dir($chemin)) {
$sq = opendir($chemin); // lecture
while ($f = readdir($sq)) {
if ($f != '.' && $f != '..')
{
$fichier = $chemin.$f; // chemin fichier
if (is_dir($fichier)){
fct::sup_repertoire($fichier);
} // rapel la fonction de manière récursive
else{
@unlink($fichier);
} // sup le fichier
}
}
closedir($sq);
if ($chemin!="chemin de repertoire parent s'il existe "){// le test aà faire
rmdir($chemin); // sup le répertoire
}
}
else {
@unlink($chemin); // sup le fichier
}
}

merci bien
 
bjr,
si on souhaite supprimer un dossier qui ce trouve dans le dossier image (www/images/dossierAsupprimer.

on doit si prendre comment ?

merci
 
Bonjour,
Il suffit de faire appel à la fonction.
1ère solution :
$chemin = ("images/dossieravirer")
sup_repertoire($chemin);
**************************
2ème solution : 
sup_repertoire("images/eye");
**************************
A++

Patrice PIERART
 
Ajouter un commentaire
Code de sécurité

Attention: Les champs marqués d'une étoile * sont obligatoires
 
Librairie PHP

Connexion

 
 

Fichiers-Répertoires

 
 

PHP

 
 
 
 
    Offres d'emploi

Plus de 500 offres d'emploi PHP/MySQL

Offres d'emploi
 
    Editeur PHP
 
        Publicité