Bonjour à tous,

Jai une erreur que je n'arrive pas à comprendre..je parcours recursivement un dossier afin de le supprimer avec unlink :

Voici mon code :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
sub supprimerRepertoireTmp ($) {
    my $self = shift;
    my ($Dir) = @_;
    my (@fichiers,$fic);
    opendir(DIR,$Dir) || Lib::Log::erreur("Impossible d'ouvrir le dossier: $Dir");
    @fichiers=readdir(DIR); 
 
    closedir(DIR);
 
    foreach $fic (@fichiers) {
        if (($fic ne ".") && ($fic ne "..")) {
            if (-d "${Dir}/$fic") {
                $self->supprimerRepertoireTmp("${Dir}/$fic");                
	            }
            else {
            	my $file="${Dir}/${fic}";
                unlink($file) || Lib::Log::avertissement("Impossible de supprimer le fichier: ${Dir}/${fic}");          	
            }
        }
    }
    rmdir($Dir) || Lib::Log::avertissement("Impossible de supprimer le dossier: $Dir");
    return(1);
}
Tout marche correctement, sauf que pour le dernier fichier présent impossible de le supprimer : Permission Denied pourtant j'ai les droits dessus et je peux le supprimer à la main. Du coup le répertoire racine ne se supprime pas car il est non vide.

J'ai essayer de rajouter des chmod(0777,$file) mais rien n'y fait.

Peut-être vous auriez quelques pistes!
Merci