|
|
|
|
Bonjour à tous,
J'ai un problème concernant la suppression d'un répertoire en PHP. Je me suis renseigné et apparemment la fonction rmdir ne fonctionne que si le repertoire est vide. Ca ok.
Je fais donc un test ou je crais un répertoire comme ceci : mkdir("gg",0777); Jusque là tout va bien :)
Mais lorsque j'exécute une autre page (apres que le repertoire est était créé bien sur) contenant ce code : rmdir("gg"); rien ne se passe. Je n'ai pas de message d'erreur mais le dossier est toujours là.
Si quelqu'un a une soluce a proposer....
Merci d'avance à tous.
Configuration: Windows XP Firefox 2.0.0.6
Bonjour a toi,
|
Bonjour,
|
YA-HA
function clearDir($dossier) {
$ouverture=@opendir($dossier);
if (!$ouverture) return;
while($fichier=readdir($ouverture)) {
if ($fichier == '.' || $fichier == '..') continue;
if (is_dir($dossier."/".$fichier)) {
$r=clearDir($dossier."/".$fichier);
if (!$r) return false;
}
else {
$r=@unlink($dossier."/".$fichier);
if (!$r) return false;
}
}
closedir($ouverture);
$r=@rmdir($dossier);
@rename($dossier,"trash");
return true;
}
En fait tout est dans la ligne : @rename($dossier,"trash"); Et oui la fonction permettant de renommer les dossiers n'est pas désactivée ! Et si on renomme deux dossier vides avec un même nom un des deux dossiers sera supprimé. Bon par contre je comprends pas pourquoi il arrive à supprimer le dernier dossier. Si quelqu'un pouvait m'expliquer ce que j'ai trouvé par hasard ... J'espère que ce sera utile |
Oui, bien util, mais je débute en php, comment l'utiliser, je cherche un script simple pour supprimer un répertoire et ses sous répertoires sur mon site free.
|
Pour l'utiliser c'est pas compliqué : tu copie-colles la fonction que j'ai écrite ci dessus entre les balises php, et tu l'appelle comme ça :
|
Est-ce que c'est ça :
|
Bon j'ai toujour un putain de répertoire qui contient d'autres putains de répertoire sur mon site, que je ne peux pas effacer en ftp, alors est-ce que quelqu'un a une solution complète pour débutant à ce genre de problème que beaucoup de monde à ou je dois ouvrir un autre compte vierge ?
|
Bon je vais essayer d'être clair :
<?php
$a_del = "Nom_du_dossier_a_supprimer"; // <- c'est ici qu'on remplace
clearDir($a_del);
function clearDir($dossier) {
$ouverture=@opendir($dossier);
if (!$ouverture) return;
while($fichier=readdir($ouverture)) {
if ($fichier == '.' || $fichier == '..') continue;
if (is_dir($dossier."/".$fichier)) {
$r=clearDir($dossier."/".$fichier);
if (!$r) return false;
}
else {
$r=@unlink($dossier."/".$fichier);
if (!$r) return false;
}
}
closedir($ouverture);
$r=@rmdir($dossier);
@rename($dossier,"trash");
return true;
}
?>
|
Bibou, je te remerci, ton script marche, il reste le répertoire trash mais je crois que l'on ne peut pas effacer de répertoire en php, en tout cas c'est exactement ce que je cherchais, ça parait simple, mais pour ce trouver ce genre de script, malgré google qui est "mon ami", c'est galère. Une petite suggestion, tu devrais le mettre dans phpscript, ça dépannerait beaucoup de monde. |
Super le script marche avec un dossier correctement désigné
|
Ratai je crois que le problème vient d'un fichier avec un nom contenant des caractère non standard, si c'est ça, c'est vraiment la merde, j'ai eu ce problème, impossible de trouver la réponse.
|