B4X:
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?