Thorsten Höser: Verzeichnisbaum

Beitrag lesen

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);

$startverzeichnis ist das oberste zu durchsuchende Verzeichnis, welches in diesem Falle mit abschließendem Slash geschrieben werden sollte.

while ($name = readdir(TEMP))
{
if   ($name =~/^.$^..$/) {
  next;
}
elsif (-d "$startverzeichnis$name") {
  push @verzeichnisse, $name;
}
elsif (-f "$startverzeichnis$name") {
  push @dateien, $name;
}
else {
  next;
}
}

durchsucht rekursiv die darunterliegenden Verzeichnisse

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;
  }
}
}