File.Copy("","c:\file_partenza.txt","","d:\file_arrivo.txt")
File.Delete(dir_prog,"rep.bat")
File.WriteString(dir_prog, "rep.bat", "c:\modifica_file_backup.exe " & "d:\file_arrivo.txt")
Dim shl As Shell
shl.Initialize("shl", "cmd", Array("/c", dir_prog & "\rep.bat"))
shl.Run(-1)
Sto usando il codice sopra per creare un file batch e lanciarlo in esecuzione
Dentro al batch c'e' un eseguibile il cui lavoro e' andare a modificare il file che gli viene passato come parametro in ingresso
Il file batch viene creato regolarmente, poi viene lanciato in esecuzione regolarmente, ma l'eseguibile modifica_file_backup.exe non riesce ad eseguire il proprio lavoro perche' dice
"Il processo non puo' accedere a D:\file_arrivo.txt perche' gia' in uso da un altro processo"
L'unica operazione che potrebbe bloccare il file e' la File.Copy iniziale
Ma anche dopo diversi secondi da File.Copy... ad avvio batch l'anomalia si ripresenta
Chi blocca il file D:\arrivo.txt? E come fare per sbloccarlo e consentirne la modifica?
Hello, About AutoIt and AutoIt4Java: AutoIt is a very useful automation scripting language for Microsoft Windows. It allows for GUI automation using a very simple syntax and can be useful for testing Windows applications. It is packaged with AutoItX which supports accessing AutoIt functions...
In che senso?
Il processo bloccante e' il programma B4J che ha avviato il bath usando il comando shell
E' il programma che contiene il codice indicato sopra
E quello resta sempre attivo, non e' che posso spegnerlo
Bisogna capire come mai, una volta copiato il file da una parte all'altra, resta 'bloccato'
...ma l'eseguibile modifica_file_backup.exe non riesce ad eseguire il proprio lavoro perche' dice "Il processo non puo' accedere a D:\file_arrivo.txt perche' gia' in uso da un altro processo"