Hallo,
ich habe ein Script welches in einer Schleife ein Verzeichnis auf Inhalt prüft.
Wird eine Datei gefunden soll diese in ein anderes Verzeichnis verschoben werden.
Mein Problem ist jetzt das es zwar Grundsätzlich funktioniert allerdings taucht ein Problem auf wenn die Datei gerade geschrieben wird und das Skript dann zuschlägt. Das führt in der Anwendung zu einem Zugriffsfehler.
Da ich nicht genau sagen kann wielange die Anwendung braucht um eine Datei zu schreiben muß ich irgendwie prüfen ob die Datei noch geöffnet ist.
Ein Wartezeit in der Schleife einzufügen bringt nicht das gewünschte Ergebnis, da der Prozess auch nicht länger als eine Minute dauern darf.
Es muß also irgendwie eine Möglichkeit geben zu Prüfen ob die Datei noch "offen" ist.
Mit autoit macht man soetwas ja auch mit Fileopen und Fileclose, allerdings weiß ich nicht wie ich das Abfangen kann.
Hat da jemand ein Idee ?
Hier das Script
[autoit]
dim $search, $dir ,$proformaspooler
While 1
$dir = "C:\PRO_SPOOL\PRO_01\"
$proformaspooler = "\\" & "server1" & "\PRO_01"
SPOOL_CHECK()
WEnd
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]Func SPOOL_CHECK()
[/autoit][autoit][/autoit][autoit]$search = FileFindFirstFile($dir & "*.*") ; Prüfen, ob die Suche erfolgreich war
If $search = -1 Then
Sleep(1)
Else
$searchfile = FileFindNextFile($search)
if @error Then Sleep(1)
$file = $dir & $searchfile
ToolTip($proformaspooler & " - " & $searchfile)
FileMove($file, $proformaspooler)
EndIf
EndFunc
[/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]