Thread Verzeichnis traversieren (4 answers)
Opened by theresa at 2007-10-11 23:48

theresa
 2007-10-11 23:48
#100712 #100712
User since
2007-07-17
90 Artikel
BenutzerIn
[default_avatar]
Hallo,
habe ein kleines Problem mit einer Rekursion.
Der Kode ist vereinfacht, hab den sinnvollen Teil gelöscht da der keine Probleme verursacht...

Der Startverzeichnis soll traversiert werden bis zu einer bestimmten Tiefe.
Es gibt einige Skripte im Internet dafür, würde aber gerne wissen was hier falsch ist...

Problem ist dass nur der erste Pfad bis tiefe==0 gefolgt wird, danach bricht das Programm ab.

Wobei doch in @unterVerz die Liste der Unterverzeichnisse ist, womit es weitermachen sollte... wieso kommt es denn nicht auf sie zurück?

Im voraus vielen Dank.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
my $startVerzeichnis = "/home1";
my $tiefe = 3;

rek($startVerzeichnis, $tiefe);

sub rek {
        
        my $verzeichnis = shift;
        my $tiefe = shift;

        if($tiefe==0){
                print "\ntiefe==0!!";
                return;
        }
        
        opendir(VERZEICHNIS, $verzeichnis);
        @unterVerz = readdir(VERZEICHNIS); 
        foreach(@unterVerz){
                if(!($_ eq ".") && !($_ eq "..")){
                        
                        #Pfad erstellen mit Unterverzeichnis/Datei ergänzt...
                        my $verzeichnisNeu = $verzeichnis . "/" . $_;   
                        
                        #Falls Verzeichnis
                        if(-d $verzeichnisNeu){
                                rek($verzeichnisNeu, $tiefe-1);
                        }
                }
        }
        #close VERZEICHNIS;
}

View full thread Verzeichnis traversieren