supprimer un répertoire plein

Eléphant du PHP | 64 Messages

23 août 2005, 12:31

Bonjour,

J'aimerai supprimer un répertoire plein mais la fonction rmdir() ne me permet pas de le faire, comment puis-je faire?
Merci d'avance.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

23 août 2005, 12:32

tu le vides ;)

ou tu fais un
exec('rm -r rpertoire');

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

23 août 2005, 15:07

Sachant que le exec() n'est pas toujours possible selon hébergement.

Eléphant du PHP | 55 Messages

23 août 2005, 17:44

Avec des unlink successifs ca ne marcherait pas?

Mammouth du PHP | 1885 Messages

23 août 2005, 18:00

Bonjour,

Premier commentaire de la documentation PHP sous la fonction rmdir():
Here's a short function I wrote to remove a directory and all it's contents using the glob() function:
function rmdirr($dir) {
   if($objs = glob($dir."/*")){
       foreach($objs as $obj) {
           is_dir($obj)? rmdirr($obj) : unlink($obj);
       }
   }
   rmdir($dir);
}
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 64 Messages

24 août 2005, 10:25

Merci pour vos suggestions...

Voici ma solution:
if (is_dir($path)){
$dir = opendir($path);
while ($f = readdir($dir)) {
   if(is_file($path.$f)) {
   unlink ($path.$f);
   }
else {}
   }
closedir($dir);
rmdir($path);
}

Mammouth du PHP | 1885 Messages

25 août 2005, 00:20

Bonjour,

Comment fais-tu pour supprimer un répertoire s'il contient d'autres répertoires? rmdir() retournera une erreur si tu ne supprimes pas complètement le contenu du répertoire.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP