Hallo,
ich habe derzeit ein Problem bei einem Script, welches auf Dateien in einem Verzeichnis wartet und dann anschließend "verschiebt".
Ursprünglich war ein FileMove() eingebaut, das hatte aber ebenfalls Probleme bereitet, weshalb ich auf FileCopy() und FileDelete() umgestiegen bin.
Ein Auszug aus dem Code:
[...]
For $i = 0 To Ubound($lFileList)-1
Local $lFile[3] = ""
For $k = 0 To 2
$lFile[$k] = FileOpen($fFolder&"\"&$lFileList[$i][$k],1)
If $lFile = -1 Then FileWrite($gLogfile,"Fehler beim Öffnen von "&$fFolder&"\"&$lFileList[$i][$k])
$lPass = True
Next
If $lPass Then
For $k = 0 To 2
FileClose($lFile[$k])
Next
For $k = 0 To 2
If FileCopy($fFolder&"\"&$lFileList[$i][$k],$gMovePath[$gRotation]&"\"&$lFileList[$i][$k],1)=0 Then
FileWrite("verteiler.log",$fFolder&"\"&$lFileList[$i][$k]&" konnte nicht nach "&$gMovePath[$gRotation]&"\"&$lFileList[$i][$k]&" verschoben werden."&@CRLF)
Else
If FileDelete($fFolder&"\"&$lFileList[$i][$k]) Then
If $gDebug Then FileWrite("verteiler.log",$fFolder&"\"&$lFileList[$i][$k]&" gelöscht."&@CRLF)
Else
If $gDebug Then FileWrite("verteiler.log",$fFolder&"\"&$lFileList[$i][$k]&" konnte nicht gelöscht werden."&@CRLF)
EndIf
EndIf
Next
[...]
Laut "verteiler.log", wie im Script angegeben, sind die Dateien erfolgreich gelöscht.
Es handelt sich um 3 Dateien pro Durchlauf, die zueinander gehören:
ABC.fil (nur Text, ca. 1KB)
ABC.tif (Bild, ca. 4MB)
ABC.txt (nur Text, ca. 1KB)
Am Ende des Durchlaufs, mal als Beispiel nach 5000 Dateien, bleiben mir immer .fil und .tif im Ursprungsordner im Windows Explorer hängen. Versuche ich diese zu öffnen, wird mir der Zugang verweigert, alle auf einmal löschen geht nicht (passiert einfach nichts) und beim einzeln Löschen tauchen die Dateien kurze Zeit später wieder auf. Die .txt Dateien sind ohne Probleme verschoben und gelöscht.
In dem Moment sieht es also aus, als wären die Dateien noch da, aber durch irgendetwas gesperrt.
Melde ich den Windows User ab und wieder an, sind die Dateien weg.
Hatte mal jemand vielleicht einen ähnlichen Fall oder kann mir sagen ob das eindeutig AutoIt oder eindeutig ein Windows-Problem ist?
Vielen Dank im Voraus!






Funktion? Die sollte genau das machen was du suchst und deutlich effizienter. Damit sparst du dir das kopieren des Dateiinhalts denn dabei wird nur der Pfad umgeschrieben. Das sollte dir bei 5000 Dateien einen ordentlichen Speedup geben.
