rekursiv Directories lesen

Von: , Frage gestellt am Fr, 28. Okt 2005

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.

5 Antworten zu dieser Frage

  1. Antwort von nach 3 Stunden 0 hilfreich
    Re: rekursiv Directories lesen

    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

    • Antwort von nach 5 Tagen 0 hilfreich
      Re^2: rekursiv Directories lesen

      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]

      • Antwort von nach 27 Tagen 0 hilfreich
        Re^3: rekursiv Directories lesen

        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]

        • Antwort von nach 30 Tagen 0 hilfreich
          Re^4: rekursiv Directories lesen

          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

          • Antwort von nach 31 Tagen 0 hilfreich
            Re^5: rekursiv Directories lesen

            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]

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!