Rekursive Datei/Ordner Auflistung per Objekt

  • Hi,
    ich hab mal die Rekursive Datei und/oder Ordner Auflistung per Objekt umgesetzt. (Ist viel kürzer als die ..FirstFile/..NextFile Variante :D )
    Vielleicht habt ihr mal Bedarf.
    Ihr übergebt Pfad (für aktuellen Pfad kann '.' und für übergeordneten Pfad kann '..' verwendet werden), Dateierweiterung ('*' oder -1 für alle[Standard]) und ein OrdnerFlag (-1 Datei+Ordner[Standard], 0 nur Dateien, 1 nur Ordner).
    Rückgabewert ist ein Array mit der Anzahl gefundener Pfade in Array[0].
    (SciTE warnt beim Ausführen, da 2 Variablen erst innerhalb der Funktion erstellt werden)


    Edit: Auf mehrfachen Wunsch einer einzelnen Dame :rofl: habe ich jetzt noch die Option zur Wahl des Rückgabetyps eingebaut. Entweder als Array (Standard), Flag 0, oder als @LF-getrennten String mit Flag 1.


    Edit 03.07.08: Eine Ergänzung eingefügt.
    Bei Stringrückgabe kann das Trennzeichen selbst gewählt werden. Vordefiniert: 0=@CRLF (Standard); 1=@CR; 2=@LF


    Die Warnung wegen noch nicht deklarierter Variable habe ich jetzt auch verbannt. ;-)


    Edit 16.09.08: Kleine Korrekturen
    Wahl der Trennzeichen jetzt festgelegt auf: 0=@CRLF (Standard) / 1=@CR/ 2=@LF / 3=; / 4=|
    Dank Oscars Hinweisen Probleme bei Trennzeichen unterschiedlicher Länge (@CR=1, @CRLF=2) beseitigt.


  • Hallo BugFix.


    Cool !!!


    Ich würde gerne das, was unter der Spalte Col0 steht und da auch nur ab dem Array [1] die Daten gerne in eine Textdatei schreiben.
    Sinn ist, das ich so ein dir *.*/s machen kann ohne Datum usw. und das ich dann noch was davor mittels Replace einfügen könnte bzw. dahinter. Das habe ich früher beim Batching auch so gemacht, nur bekomme ich eine solche Liste nicht mit AutoIt hin, aber das obere Script ist doch schon mal der Weg dahin.


    Später soll das so aussehen:
    eingelesen:
    d:\autoit\muster\test1.au3
    d:\autoit\muster\test2.au3
    d:\autoit\muster\test3.au3
    d:\autoit\muster\test4.au3


    bearbeitet: (grün dazu durch z. B. replace)
    move d:\autoit\muster\test1.au3 e:\autoitneu\muster\test1.au3
    move d:\autoit\muster\test2.au3 e:\autoitneu\muster\test2.au3
    move d:\autoit\muster\test3.au3 e:\autoitneu\muster\test3.au3
    move d:\autoit\muster\test4.au3 e:\autoitneu\muster\test4.au3


    LG, Crazy-A.

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

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

  • Das geht ganz einfach, da es als String erstellt wird.
    Kommentiere wie gezeigt aus und du bekommst einen String zurück.

  • Hallo BugFix.


    Erst einmal: DANKE und KnuBu.


    Bekomme folgende Fehlermeldung:
    E:\test.au3(45,78) : WARNING: $strFF_Ret possibly not declared/created yet
    If ($Dir = -1) Or ($Dir = 1) Then $strFF_Ret &= $Subfolder.Path & @LF
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    E:\test.au3(51,54) : WARNING: $strFiles possibly not declared/created yet
    $strFiles &= $file.Path & @LF
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    E:\test.au3 - 0 error(s), 2 warning(s)



    LG, Lina.

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

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

  • Hallo GTA.


    Hier wird ja auch in ein Fenster geschrieben. Ich möchte gerne in eine Txt-Datei das Ergebnis haben, damit ich es wie unter Beitragnummer 5 (?) weiter bearbeiten kann. Sprich ich möchte später etwas davor und dahinter setzen.


    Gruß, Crazy-A.

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

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

  • Okay ?(:?:?(


    Ich glaube wir sind der Lsg. sehr nahe, oder?


    Zu 1)
    Was muss ich machen, damit ich die nicht ignoriere?


    zu 2)
    Wie erfolgt die Ausgabe denn in die test.txt?
    SO ?





    LG, Lina.

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

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

  • Hallo BugFix.


    Ich dachte immer, was man Warnungen beachten muss. Aber wenn Du sagst: INGOR. Okay, dann ignoriere ich es.


    Naja, das schreiben in die Datei kappppppt super. Muss nur @LF durch @CRLF ersetzen, da sonst die Bearbeitung nicht geht und er alles in eine Zeile schreibt. Aber das ist wohl eine Sache von Windows.


    Nun sollte ich die anderen Sachen (Text vor jede Zeile der Textdatei schreiben und Text hinter jede Zeiler der Textdatei schreiben) auch irgendwie hin bekommen. Ist ja jedes mal der gleiche Text der davor kommt und dahinter. Siehst Du ja am Beispiel das ich oben geschrieben habe. Mal das Script schreiben und dann aufrufen lassen.


    Danke nochmals !!!


    LG, Lina.

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

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

    Einmal editiert, zuletzt von Crazy-A ()

  • 1 Fehler gefunden.
    Dieses passiert nur, wenn man das Script von der Root aus startet, da es da wohl kein '..' mnöglich ist, oder?


    1.) mit dir *.* /s >dosdir.txt kommt dieses raus, also auch das aktuelles Verzeichnis:


    2.) Mit dem von Bugfix fehlt das aktuelle Verzeichnis:


    Wieso der Unterschied ???


    Script sieht derzeitig so aus:


    Kann man das aktuelle Verzeichnis, da wo das Script sich befindet mit auflisten?
    Mach ich in Zeile 2 stat einem Punkt zwei Punkte, nimmt er alles ab dem übergeordneten Ordner, aber leider nicht den aktuellen Ordner.
    Wenn es nicht möglich ist, wäre das nicht schlimm, denn dann kommt einfach alles in einen Ordner den ich anlege und dann führe ich das Script aus. Ist eine Anregung, okay?


    Vielen Dank für die Hilfe !!!


    LG, Crazy-A.

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

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

    3 Mal editiert, zuletzt von Crazy-A ()

  • Bugfix, Du durchsuchst nur die Unterverzeichnisse des übergebenen Verzeichnisses, nicht aber das übergebene Verzeichnis selbst.
    Ich habe die Funktion mal etwas umgeschrieben:



    So wird auch das übergebene Verzeichnis durchsucht.


    Ansonsten war das sehr hilfreich. Habe das nämlich gerade gebraucht (AIPM). :thumbsup:

  • jepp, so funktioniert es auch im aktuellen verzeichnissssss.


    bugfix & oscar haben das super gemacht.


    glg, crazy-a.

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

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

  • Hallo BugFix.


    Sag mal, bist Du böse mit mir wegen dem Posting vom Donnerstag, 26. Juni 2008, 16:02 (hier)?
    Hoffe nicht, aber Du hast es ja nun auch selber als Variablen deklariert.


    Okay, wenn sorry und LG.


    Crazy-A

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

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