File name suche in einem verzeichniss

  • [autoit]

    ; Zeigt die Dateinamen aller Dateien im aktuellen Verzeichnis an.
    $search = FileFindFirstFile("E:\Programme\AutoIt3\Include")

    [/autoit][autoit][/autoit][autoit]

    ; Prüfen, ob die Suche erfolgreich war
    If $search = -1 Then
    MsgBox(0, "Fehler", "Es wurden keine Dateien/Verzeichnisse gefunden, die zu dem Suchmuster passen")
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop

    FileOpen("Include.txt",2)
    FileWrite("Include.txt",$file)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    ; Handle für Suche schliessen
    FileClose($search)

    [/autoit]

    warum schreibt er mir nich alle namen raus also Array.au3 .....

    Einmal editiert, zuletzt von bandido1 (20. April 2009 um 21:35)

  • ja kopier fehler ;)

    aber der schreibt mit nur include rein warum weis ich nich ;(

    er macht alles auser das was ich will :cursing::cursing:

    • Offizieller Beitrag

    Wenn ich das richtig sehe willst du die Dateinamen alle in eine Textdatei speichern .

    [autoit]

    FileOpen("Include.txt",2)

    [/autoit]


    Ist dabei aber falsch, weil bei jedem Offnen die Datei neu angelegt wird .

    [autoit]

    FileOpen("Include.txt",1)

    [/autoit]


    Wäre das richtige, wenn du nicht nur 1 Dateinamen in deiner Textdatei haben willst.

    Edit: Dun mußt die Datei gar nicht öfter öffnen .Hier dein Script . Es legt die Include.txt an und schreibt die Einträge in die Datei .

    Spoiler anzeigen
    [autoit]

    ; Zeigt die Dateinamen aller Dateien im aktuellen Verzeichnis an.
    $search = FileFindFirstFile("E:\Programme\AutoIt3\Include")

    [/autoit] [autoit][/autoit] [autoit]

    ; Prüfen, ob die Suche erfolgreich war
    If $search = -1 Then
    MsgBox(0, "Fehler", "Es wurden keine Dateien/Verzeichnisse gefunden, die zu dem Suchmuster passen")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    FileWrite("Include.txt",$file)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ; Handle für Suche schliessen
    FileClose($search)

    [/autoit]


    Damit wird die Datei nicht dauern in der Schleife neu geöffnet .

  • habs fast geschaft

    [autoit]

    ; Zeigt die Dateinamen aller Dateien im aktuellen Verzeichnis an.

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $search = FileFindFirstFile("*.*")

    [/autoit][autoit][/autoit][autoit]

    ; Prüfen, ob die Suche erfolgreich war
    If $search = -1 Then
    MsgBox(0, "Fehler", "Es wurden keine Dateien/Verzeichnisse gefunden, die zu dem Suchmuster passen")
    Exit
    EndIf

    [/autoit][autoit][/autoit][autoit]

    While 1
    $file = FileFindNextFile($search)

    If @error Then ExitLoop

    FileOpen("Include.txt",2)
    FileWrite("Include.txt",$file)

    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ; Handle für Suche schliessen
    FileClose($search)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]

    muss die exe in den ordner include tun jetzt schreibt er sogar was richtiges aber nur den namen der ersten datei ;(

  • musste FileOpen("Include.txt",2) auf 1 setzen, aber du brauchst den ganzen Befehl nicht, Filewrite legt automatisch eine ab.

    so z.B. für .au3 dateien

    Spoiler anzeigen
    [autoit]

    ; Shows the filenames of all files in the current directory.
    $search = FileFindFirstFile("*.au3")

    [/autoit] [autoit][/autoit] [autoit]

    ; Check if the search was successful
    If $search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop

    FileWrite ( "include.txt", $file&@CRLF )
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    ; Close the search handle
    FileClose($search)

    [/autoit]