Oppure

Loading
21/12/09 18:00
dylan666
Salve a tutti, ho necessità di fare un Copy di un file che ci mette molto tempo per essere generato.
Se la mia applicazione cerca di copiare il file mentre questo sta finendo di essere scritto ricevo un "Errore di run-time 70 Autorizzazione negata"

Se metto un "On Error Resume Next" mi ritrovo più copie dello stesso file parzialmente creato, una per ogni tentativo di copia NON andato a buon fine.

È possibile fare un check del file prima di avviare la copia per sapere se è "libero" e non è ancora in scrittura?
aaa
21/12/09 20:36
GrG
non ho capito molto... comunque dipende da come copi il file, dovestri mostrare il codice sorgente
aaa
21/12/09 21:01
dylan666
In sintesi: la copia mi dà errore per accesso negato.
E' possibile verificare se un file è in uso e "darebbe" l'errore di accesso negato se si provasse a copiarlo o cancellarlo anche senza lanciare il comando di copia/cancellazione e ricevere come risposta l'errore?
aaa
22/12/09 14:22
GrG
sinceramente non so come si fa... ovviamente devi usare qualche API.. Prova a cercare tra le API (usando il Tool che sta insieme a vb6, chiamato API Text Viewer) quella che ti potrebbe servire
aaa
22/12/09 16:17
Louis
...possibile fare un check del file prima di avviare la copia 


Prima di dare il comando copia "pesa" il file ...
aaa
22/12/09 17:17
dylan666
Come? E a che serve? Non so in anticipo quanto sarà il file mentre viene scritto, danod F5 vedo la grandezza che aumenta finoa che non si ferma.
Per il discorso dell API ho trovato questo:
vbnet.mvps.org/…
aaa
22/12/09 22:11
gibra
Non serve nessuna API.

Ti basta creare un loop in cui tenti di aprire il file (usando Open) in modalità esclusiva e, cosa indispensabile, intercettando l'errore.
Ricordati di inserire un DoEvents nel loop!

Se genera errore significa che il file non è 'libero' quindi il loop continua, fino a quando il file viene rilasciato.
A quel punto la Open avrà successo, poi chiudi il file (Close) e potrai eseguire il tuo FileCopy tranquillamente.

Ciao
aaa
23/12/09 10:51
GrG
Postato originariamente da gibra:
Se genera errore significa che il file non è 'libero' quindi il loop continua, fino a quando il file viene rilasciato.


Azz hai ragione, questo è il metodo più corretto :)
aaa