Renamer ist ungenau und langsam

  • Heyho liebe Community.

    Ich erstelle grade ein Programm, welches unter anderem eine Funktion hat,
    alle Datein in einem gewählten ordner eine neue dateiendung zu geben.
    DIese Funktion funktioniert nun auch, allerdings ist die Funktion sehr langsam
    und ungenau, da manche datein übergangen werden, obwohl sie keine Ausnahme darstellen sollten.

    Das hier ist der Code für die Renamefunktion

    [autoit]

    $aFiles = _FileListToArray(GUICtrlRead($Input2),"*."&GUICtrlRead($Combo1), 1)
    If @error = 4 Then
    Else
    $Amount = 0
    For $i = 1 To $aFiles[0]
    $Amount = $Amount + 1
    $Splitted = StringSplit($aFiles[$i],"."&GUICtrlRead($Combo1))
    FileMove(GUICtrlRead($Input2)&"\"&$Splitted[1]&"."&GUICtrlRead($Combo1),GUICtrlRead($Input2)&"\"&$Splitted[1]&"."&GUICtrlRead($Combo2))
    Next
    MsgBox(32,"Success",$Amount&" Files were renamed successfully")

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

    EndIf

    [/autoit]

    Hoffe es gibt da ne lösung, nicht dass das am Ende nur an Autoit selbst liegt =/.

    Danke im Vorraus.
    MFG

    2 Mal editiert, zuletzt von Kuroihana (19. Dezember 2010 um 14:41)

  • So?

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    Rename(@ScriptDir, ".abc")
    Func Rename($sPath, $sExtension, $sFilter="*.*")
    Local $files, $name
    $files=_FileListToArray($sPath, $sFilter, 1)
    For $i=1 to $files[0]
    $name=StringSplit($files[$i], ".")
    FileMove($files[$i], $name[1]&"."&$sExtension)
    Next
    EndFunc

    [/autoit]
  • Danke so funktioniert es, musste nur ein paar kleine Änderungen vornehmen.

    [autoit]

    #include <File.au3>
    Rename(@ScriptDir&"\effect\", "tga")
    Func Rename($sPath, $sExtension, $sFilter="*.*")
    Local $files, $name
    $files=_FileListToArray($sPath, $sFilter, 1)
    $Amount = 0
    For $i=1 to $files[0]
    $Amount = $Amount + 1
    $name=StringSplit($files[$i], ".")
    FileMove($sPath&$files[$i], $sPath&$name[1]&"."&$sExtension)
    Next
    MsgBox(0,"",$Amount)
    EndFunc

    [/autoit]