- Offizieller Beitrag
Hier kommt wieder mal eine kleine Hilfsfunktion (brauchte ich gerade).
Damit kann man testen, ob eine Datei bereits existiert. Wenn ja, wird automatisch ein Zähler an den Dateinamen angehängt, sodass man sicher sein kann, dass man keine Datei überschreibt.
Spoiler anzeigen
$sFilename = @AutoItExe
$sFilename = _GetUniqueFileName($sFilename)
If @error Then
ConsoleWrite('Fehler = ' & @error & @CR)
Else
ConsoleWrite('Dateiname = "' & $sFilename & '"' & @CR)
EndIf
;===============================================================================
; Function Name: _GetUniqueFileName($sPath)
; Description:: Wenn der Dateiname bereits existiert wird ein Zähler
; in Form von: "_(1)" an den Dateinamen angehängt.
; Parameter(s): $sPath = kompletter Pfad der Datei
; Requirement(s): -
; Return Value(s): bei Erfolg = der (neue) Dateiname
; bei Fehler wird @error = 1 (Pfad falsch angegeben)
; Author(s): Oscar (http://www.autoit.de)
;===============================================================================
Func _GetUniqueFileName($sPath)
Local $aPath, $sNumber = '', $iCount = 0
$aPath = StringRegExp($sPath, '(.+\\)(.+)(\..+)', 3)
If @error Then Return SetError(1, 0, 0)
While FileExists($aPath[0] & $aPath[1] & $sNumber & $aPath[2])
$iCount += 1
$sNumber = '_(' & $iCount & ')'
WEnd
Return $aPath[0] & $aPath[1] & $sNumber & $aPath[2]
EndFunc ;==>_GetUniqueFileName