Verzeichnisbaum
Sevi
- perl
Hi Leute,
wie kann ich in Perl VErzeichnisse und Unterverzeichnisse durchsuchen, und alle Dateinamen und Verzeichnisnamen auflisten bzw. in einem Array abspeichern
Ich freue mich auf Antworten
ciao Sevi
hi!
wie kann ich in Perl VErzeichnisse und Unterverzeichnisse durchsuchen, und alle
Dateinamen und Verzeichnisnamen auflisten bzw. in einem Array abspeichern
Kein Problem mit ein bisschen Rekursion:
=== cut ===
#!/usr/bin/perl
&subDirs(".");
sub subDirs
{
$Verzeichnis .= "/$_[0]";
$Verzeichnis =~ s/^///;
chdir "$_[0]";
for (<*>)
{
print "$Verzeichnis/$_\n" if !-d;
&subDirs($_) if -d;
$Verzeichnis =~ s/^/// if -d;
}
chdir "..";
$Verzeichnis = "/" . $Verzeichnis;
$Verzeichnis =~ s//[^/]*$//;
}
=== cut ===
bye, Frank!
Hi Leute,
wie kann ich in Perl VErzeichnisse und Unterverzeichnisse durchsuchen, und alle Dateinamen und Verzeichnisnamen auflisten bzw. in einem Array abspeichern
Ich freue mich auf Antworten
ciao Sevi
Du kannst es mal mit folgender Routine probieren
opendir(TEMP, $startverzeichnis);
while ($name = readdir(TEMP))
{
if ($name =~/^.$^..$/) {
next;
}
elsif (-d "$startverzeichnis$name") {
push @verzeichnisse, $name;
}
elsif (-f "$startverzeichnis$name") {
push @dateien, $name;
}
else {
next;
}
}
foreach $pfad (@verzeichnisse) {
opendir(TEMP, "$startverzeichnis$pfad");
while ($name = readdir(TEMP)) {
if ($name=~/^.$^..$/) {
next;
}
elsif (-d "$startverzeichnis$pfad/$name") {
push @verzeichnisse, "$pfad/$name";
}
elsif (-f "$startverzeichnis$pfad/$name") {
push @dateien, "$pfad/$name";
}
else {
next;
}
}
}