Unterverzeichnisse / Dateien auflisten und in datei schreiben

  • hey bei dem Script, des ich versucht hab zu machen, kommt immer wieder ein Fehler, dass $array kein Array sei, jedoch prüfe ich davor ob es ein array is:

    [autoit]

    #include <misc.au3>
    #Include <File.au3>
    #Include <Array.au3>

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

    Local $handle = FileOpen("verzeichnisse.txt",1)
    $dir = "SDK"

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

    $array = _FileListToArray($dir)

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

    If IsArray($array) Then
    For $i = 1 To $array[0]
    $tmpDIR = $dir & "\" & $array[$i]
    FileWrite($handle,$tmpDIR & @CRLF)
    ListFiles($tmpDIR)
    Next
    EndIf

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

    Func ListFiles($dir)
    $array = _FileListToArray($dir)

    If IsArray($array) Then
    For $i = 1 To $array[0]
    $tmpDIR = $dir & "\" & $array[$i]
    FileWrite($handle,$tmpDIR & @CRLF)
    ListFiles($tmpDIR)
    Next
    EndIf
    EndFunc

    [/autoit]
  • ich weiß ja nicht was du genau vor hast, aber so würde zumindest jeder vollständige pfad der dateien/ordner in diese "verzeichnisse.txt" geschrieben werden.

    Spoiler anzeigen
    [autoit]

    #include <misc.au3>
    #Include <File.au3>
    #Include <Array.au3>

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

    Local $handle = FileOpen("verzeichnisse.txt",1)
    $dir = @desktopdir

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

    $array = _FileListToArray($dir)

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

    If IsArray($array) Then
    For $i = 1 To UBound($array)-1
    $tmpDIR = $dir & "\" & $array[$i]
    FileWrite($handle,$tmpDIR & @CRLF)
    ;ListFiles($tmpDIR)
    Next
    EndIf

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

    #cs
    Func ListFiles($dir)
    $array = _FileListToArray($dir)

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

    If IsArray($array) Then
    For $i = 0 To UBound($array)-1
    $tmpDIR = $dir & "\" & $array[$i]
    FileWrite($handle,$tmpDIR & @CRLF)
    ListFiles($tmpDIR)
    Next
    EndIf
    EndFunc
    #ce

    [/autoit]

    was du mit der funktion noch bezwecken willst weiß ich nicht so recht.
    fakt ist auf jedenfall das dort drin der fehler liegt

  • Hi, hier ein Beispiel. 8)

    [autoit]


    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6

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

    #include <File.au3>
    #include <Array.au3>

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

    Global $handle = FileOpen(@ScriptDir & "\verzeichnisse.txt", 1)
    Global $dir = 'D:\Install-Software-AutoIt'
    Global $FileList = _FileListToArray($dir)

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

    Switch @error
    Case 1
    MsgBox(0, "", "No Folders Found.")
    Exit
    Case 4
    MsgBox(0, "", "No Files Found.")
    Exit
    EndSwitch

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

    _ArrayDisplay($FileList, "$FileList")

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

    For $i = 1 To $FileList[0]
    ConsoleWrite($dir & "\" & $FileList[$i] & @CRLF)
    ;~ FileWrite($handle, $dir & "\" & $FileList[$i] & @CRLF)
    Next
    ;~ FileClose($handle)
    ; Ende

    [/autoit]