Rekursive Dateisuche per Objekt

  • Hier mal eine andere Variante zur Rekursiven Dateisuche. Diesmal mit Objekt gelöst.
    Konkret: Funktion um eine Datei rekursiv in einem Pfad zu suchen. Rückgabe - der Dateipfad.


  • Hi,


    sieht sehr gut aus :-)


    Ich habs mal so angepaßt (NICHT unbedingt besser!!!)



    So long,


    Mega

  • Hallo.


    Habe gerade mal bisschen was über "Rekursiven Programmierung" gelesen. Wenn ich das also richtig verstanden habe, bedeutet es doch, das man bei Faktor vier auch vier mal ein Ergebnis bekommt und mit dieser vier Ergebnissen arbeiten könnte. Oder habe ich es falsch verstanden?
    Gelesene Quelle: http://de.wikipedia.org/wiki/Rekursive_Programmierung


    Bin mal gespannt, ob ich das richtig verstanden habe.


    LG Lina

    ...... Lieben Gruß, ........
    ...........
    Alina ............

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Ich habe die Deutsche Hilfe auf meinem PC und
    OrganizeIncludes ist beim Scripten mein bester
    Freund. Okay?

  • Zitat

    Ich habs mal so angepaßt (NICHT unbedingt besser!!!)


    Minimieren ist immer gut ;-)


    Eins aber noch zur Ergänzung, sollte die gesuchte Datei mehrfach vorhanden sein, wird nur die erste gefundene Instanz zurückgegeben (war auch mein Anliegen um die Suchzeit zu minimieren).
    Kann natürlich abgeändert werden (Megas Änderung noch nicht enthalten):



    Also von der Gesamtsuchzeit her ist glaub ich kein Zeitgewinn zu verzeichnen. Aber der Code ist einfacher zu handeln als die Strukturen mit 'FileFindFirstFile - FileFindNextFile'.

  • Hi!


    Alina :
    Bei Rekursion geht es darum, dass eine Funktion sich selbst aufruft. Damit lässt sich manches etwas besser lesbar programmieren. Aber es gibt dennoch nur ein Ergebnis zurück, unabhängig vom Startwert (in diesem Fall). Denn wie bei Wiki gezeigt wird immer wieder zurückgehangelt, bis man wieder beim Ursprungsaufruf landet und dort das Ergebnis zurückgibt.


    peethebee

  • Ich würde gerne mit der Funktion mehrere Dateien in mehreren Ordnern suchen.
    Mit einer ist es ja kein Problem.


    Ich suche z.B. die Datei abc.exe und xyz.exe auf C: und auf D: wie kann ich das anstellen.


    Und möchte das ganze loggen in einer txt zum Beispiel.


    Hoffe ihr versteht mich einigermassen ^^



    LG


    Schnuecks

  • Ich würde gerne mit der Funktion mehrere Dateien in mehreren Ordnern suchen.
    Mit einer ist es ja kein Problem.


    Mit mehreren auch nicht. ;-)
    Abarbeiten in einer Schleife, könntest du so machen (Suchfunktion ist hier eine andere, kannst ja testen welche schneller ist.):


  • Was ist hier dran falsch?



    Es findet nur D: xyz.exe aber nicht C: xyz.exe vertausch ich die beiden findete er die Sachen von C: aber nicht von D:



    LG


    Schnuecks

  • Das funktioniert jetzt soweit.


    Er zeigt aber immer nur die zuerst gefundene an. Beispiel



    Die Datei xyz.exe existiert im Beispiel mehrmals auf Laufwerk C:, Laufwerk D: und E: passen.
    Was muss ich machen damit alle gefunden angezeigt werden.


    Ergebniss:



    Mach ich noch etwas falsch?


    LG
    Schnuecks

  • Die Datei xyz.exe existiert im Beispiel mehrmals auf Laufwerk C:


    Also mehrfaches Auftreten einer Datei in einem Pfad kann hiermit nicht gefunden werden. Diese Suchmethode gibt immer nur die erste gefundene Instanz zurück.
    Wenn du mehrfaches Auftreten finden willst, benötigst du eine Variante, die FileFindFirstFile ...NextFile verwendet.

  • Ok mehrfach brauch ich nicht unbedingt.


    Aber mir ist folgendes aufgefallen



    Ergebniss



    Frage warum findet er die Datei test.jar auf C: und D: beim zweiten obwohl nur C: angegeben ist?


    LG
    Schnuecks

  • Also wenn Du die Suchreihenfolge wie folgt änderst bekommst Du das richtige Ergebnissssss. ;-)


    ...... Lieben Gruß, ........
    ...........
    Alina ............

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Ich habe die Deutsche Hilfe auf meinem PC und
    OrganizeIncludes ist beim Scripten mein bester
    Freund. Okay?

  • Wirklich 'ne prima Funktion ! :)


    Und sehr schnell noch dazu.
    Die andere Funktion SearchTreeForFile scheint etwas schneller zu sein, ist aber leider auf Dateien beschränkt und nicht für eine Ordnersuche geeignet.


    Danke für diese nützlichen Funktionen. :)



    LG
    Greenhorn

    »Wir beschließen etwas, stellen das dann in den Raum und warten einige Zeit ab, was passiert.
    Wenn es dann kein großes Geschrei gibt und keine Aufstände, weil die meisten gar nicht begreifen,
    was da beschlossen wurde, dann machen wir weiter - Schritt für Schritt, bis es kein Zurück mehr gibt.«
    (Jean-Claude Juncker)

  • BugFix , hab einen Bug in deine Funktion gefunden der gefixt werden muß. :thumbsup:


    Wenn sich die zu suchende Datei sich im Hauptverzeichnis eines Laufwerkes befindet, wird sie nicht gefunden.


    Hier meine Version: