Rekursiv Directories lesen

Hallo,

habe folgendes Problem, es sollen Files bestimmter Extensions in nem Verzeichnis rekursiv gezählt werden, eigentlich nich soooo schwer.

Quelltext sieht in etwa so :

sub test
{
my ($curr_dir,$offset) = @_;
my $entry;
my @dir_entry;

if (!opendir(HANDLER, $curr_dir))
{
print „kann Verzeichnis nicht öffnen \n“;
return;
}

@dir_entry = readdir HANDLER;
close (HANDLER);

foreach $entry (@dir_entry)
{
if (-f „$curr_dir\$entry“)
{
@ext = split (/./,$entry);
if ( $ext[1] eq „txt“) {$count_ext++;}
}

if ((-d „$curr_dir\$entry“) and ($entry ne „.“) and ($entry ne „…“))
{
($count_ext,$count_sum) = test("$curr_dir\$entry","$offset „,“$count_ext");
}
}
return ($count_ext);
}

Dummerweise, ich habs noch nicht so richtig erfasst, werden aber viele Verzeichnisse übergangen, ziemlich wahrschleich mit zunehmender Tiefe.

Ich find einfach den Denkfehler nich…falls jemand Lust hat sich mal reinzudenken, wäre sehr dankbar.

PS: rekursive Auffrufe sind nicht mein Ding ^^ zumindest wenn mans länger nich mehr gemacht hat.

Hallo,

habe folgendes Problem, es sollen Files bestimmter Extensions
in nem Verzeichnis rekursiv gezählt werden, eigentlich nich
soooo schwer.

Hi Mario,
warum machst du dir es denn dann so schwer? Schau doch mal unter ‚perldoc File::Find‘ - das Modul kann alles was du brauchst (und wahrscheinlich noch viel mehr).

gruss
bernhard

Hi,

Weil ichs einfach nich beherrsche ^^.
Naja, hab mit C++/C# angefangen und Perl is doch schon etwas anderes (vom technsichen Hintergrund mal abgesehen).
Soviele Module und alternative Möglichkeiten !! …in C muss man erstmal alles selbst zusammen basteln.

Ich hab das Module „Find“ ausprobiert, klappt eigentlich ganz gut. Meine Function hat aber die gleiche Funktionalität, hat also nicht das Problem beseitigt, es liegt am Netzlaufwerk.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Kann mir da jemand weiterhelfen ?
Das Module sollte auch mit Netzlwerkpfaden ordentlich arbeiten können.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Kann mir da jemand weiterhelfen ?
Das Module sollte auch mit Netzlwerkpfaden ordentlich arbeiten
können.

Tut es sicher auch. Dein Betriebssystem sollte dafür sorgen, dass ein Programm keinen Unterschied zwischen „normalen“ und Netzlaufwerken „sieht“. Es ist also eine Frage, die nichts mehr mit Perl zu tun hat. Frag doch mal in einem Brett nach, das zu deinem Betriebssystem passt.

Grüße,
Moritz

Ok, war ein Irrtum meinerseits.
File-Modul arbeitet wunderbar mit Netzwerkpfaden, der Fehler war ein anderer.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]