Moin Moin!
Arbeite rekursiv oder mit einer To-Do-Liste.
Beispiel für Dateibäume, in ungeprüftem Perl.
# Rekursiv:
sub scan
{
my $where=shift;
print "Verzeichnis: $where\n";
my $dir=IO::Dir->new($where) or die "$where: $!";
my @items=$dir->read();
$dir->close(); # Handles gibt es nur begrenzt, also schnell wieder freigeben
foreach my $item (@items) {
if (-d "$where/$item") {
scan("$where/$item");
} else {
print "Datei: $where/$item\n";
}
}
# TO-DO-Liste:
sub scan
{
my $start=shift;
my @todo=($start);
while (@todo) {
my $where=shift @todo;
print "Verzeichnis: $where\n";
my $dir=IO::Dir->new($where) or die "$where: $!";
while (my $item=$dir->read()) {
if (-d "$where/$item") {
push @todo,"$where/$item";
} else {
print "Datei: $where/$item\n";
}
}
$dir->close();
}
}
Alexander
--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".