Page 1 sur 1

supprimer un répertoire plein

Posté : 23 août 2005, 12:31
par xgregx
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.

Posté : 23 août 2005, 12:32
par ouckileou
tu le vides ;)

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

Posté : 23 août 2005, 15:07
par mere-teresa
Sachant que le exec() n'est pas toujours possible selon hébergement.

Posté : 23 août 2005, 17:44
par Bobulum
Avec des unlink successifs ca ne marcherait pas?

Posté : 23 août 2005, 18:00
par Xenon_54
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);
}

Posté : 24 août 2005, 10:25
par xgregx
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);
}

Posté : 25 août 2005, 00:20
par Xenon_54
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.