mkdir et rmdir

invit
Invité n'ayant pas de compte PHPfrance

19 juil. 2007, 17:54

Bonjour,
dans un de mes script je crée ds répertoire avec mkdir(nom,0777), cela en pose aucun souci.
Dans cette meme page, je souhaite faire un rmdir de ce repertoire:

voici ma fonction
function rmdir_rf($dirname) {
    if ($dirHandle = opendir($dirname)) {
        chdir($dirname);
        while ($file = readdir($dirHandle)) {
            if ($file == '.' || $file == '..') continue;
            if (is_dir($file)) rmdir_rf($file);
            else {  unlink($file);}
        }
        chdir('..');
		rmdir($dirname);
        closedir($dirHandle);
    }
}

puis dans mon script j'ai ceci

if(isset($_POST['supprimer']))
{
	if(!empty($_POST['list']))
	{
	foreach($_POST['list'] as $indice => $dossier)
	{
		rmdir_rf($dossier);
		echo $dossier,' supprimé';
	}
	}
	else
	{
		echo 'Veuillez séléctionner un répertoire à supprimer<br/>';
	}


}
lorsque je selectionne sur un repertoire a supprimer, j'obtiens ce message d'erreur:

Warning: rmdir(./babar) [function.rmdir]: Permission denied in C:\wamp\www

Pourtant, j'ai mis 0777, donc je suis censé avoir tous les droits sur ce répertoire.

merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

19 juil. 2007, 18:07

Tu as effectivement tous les droits, mais à l'intérieur de ce répertoire... pour pouvoir supprimer le répertoire en question, il te faut également les droits d'écriture sur le dossier parent (celui qui le contient quoi :)), ce qui ne semble pas être le cas :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

invit
Invité n'ayant pas de compte PHPfrance

19 juil. 2007, 19:49

Yep, je m'en doutais.

merci

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

19 juil. 2007, 20:04

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer