_FileListToArray mit nur datein die mit _small.jpg enden auflissten

  • Hier werden dir Ordner gefunden doch das mit den Wildcarts also dem Filter scheint nicht zu klappen...

    kann mir einer nen Tipp geben?

    Danke :)

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>
    $folders = _FileListToArray(@ScriptDir,"*",2)

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

    For $t = 1 to $folders[0]

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

    $files=_FileListToArray(@ScriptDir&"/"&$folders[$t],"*_small.jpg")

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

    For $i = 1 to $files[0]
    FileDelete(@ScriptDir&"/"&$files[$i])
    next

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

    Next

    [/autoit]
  • Sollte im Pfad nicht ein "\" statt "/" stehen?
    Oder Du verwendest gleich RecFileListToArray

  • zwar unschön aber laüft. :) :thumbup:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>
    $folders = _FileListToArray(@ScriptDir,"*",2)

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

    For $t = 1 to $folders[0]
    $files=_FileListToArray(@ScriptDir&"\"&$folders[$t]&"\","*.jpg")

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

    For $I = 1 to UBound($files) -1
    if StringInStr($files[$I],"_small.jpg") then FileDelete(@ScriptDir&"\"&$folders[$t]&"\"&$files[$I])
    Next

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

    Next

    [/autoit]
  • Was ist denn daran unschön?

    Eventuell würde ich StringRight statt StringInString nehmen:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>
    $folders = _FileListToArray(@ScriptDir,"*",2)

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

    For $t = 1 to $folders[0]
    $files=_FileListToArray(@ScriptDir&"\"&$folders[$t]&"\","*.jpg")
    For $I = 1 to UBound($files) -1
    if StringRight($files[$I],10) = "_small.jpg") then FileDelete(@ScriptDir&"\"&$folders[$t]&"\"&$files[$I])
    Next
    Next

    [/autoit]

    Deine Lösung würde auch Dateien löschen die "IchBin_small.jpgunddochsogross.bmp" heissen

  • Warum geht ihr über StringInStr/StringRight anstatt gleich das Pattern in FileListToArray einzutragen?:

    [autoit]

    #include <File.au3>

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

    Global $a_Files
    Global Const $s_InitDir = @ScriptDir
    Global $a_Folders = _FileListToArray($s_InitDir, "*", 2)

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

    For $i = 1 To $a_Folders[0]
    $a_Files = _FileListToArray($s_InitDir & "\" & $a_Folders[$i], "*_small.jpg", 1)
    If @error Then ContinueLoop

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

    For $x = 1 To $a_Files[0]
    ConsoleWrite('FileDelete("' & $s_InitDir & "\" & $a_Folders[$i] & "\" & $a_Files[$x] & '")' & @CRLF)
    Next
    Next

    [/autoit]
  • Warum geht ihr über StringInStr/StringRight anstatt gleich das Pattern in FileListToArray einzutragen?:


    Weil die Lösung:

    • Zu Offentsichtlich und
    • Zu einfach ist ....

    Ach, man sieht manchmal den Wald vor lauter Bäumen nicht :wacko:

  • @Asperinjunkey: das mit den Plattern hatte ich ja versucht. Findet nur nix *.jpg geht *_small.jpg geht aber bei mir nicht darum hab ich ja den um weg genommen.

    Und das mit stringinstr oder stringright ist egal da dort eh nur jpgs liegen.
    übriges es wird ein webfotoalbum creator für ganz viele Fotos, einfach fotos in ordner stecken script an und die fertigen html seiten kommen hervor ich brauch das für eine webseite die ich betreie die aber kein php unterstützt sondern nur schlichtest html :)

    Aber danke für die hilfe
    ;)

  • hast du mein skript wenigstens mal getestet bevor du sagst das es pauschal mit filelisttoarray nicht funktioniert?
    das dein beispiel nicht funktioniert ist ja auch klar gib dir lieber mal die pfade aus die du zusammenbastelst anstatt direkt in filedelete einzutragen - dann solltest du auch ziemlich schnell sehen warum dein filedelete nicht funktioniert.