Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Prevenire errore di runtime 70 su copia di un file
Forum - Visual Basic 6 - Prevenire errore di runtime 70 su copia di un file

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 19:00
Lunedì, 21/12/2009
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?

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 21:36
Lunedì, 21/12/2009
non ho capito molto... comunque dipende da come copi il file, dovestri mostrare il codice sorgente

PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 22:01
Lunedì, 21/12/2009
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?

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 15:22
Martedì, 22/12/2009
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

PM Quote
Avatar
Louis (Normal User)
Pro


Messaggi: 150
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 17:17
Martedì, 22/12/2009
Codice sorgente - presumibilmente Visual Basic 6

  1. ...possibile fare un check del file prima di avviare la copia



Prima di dare il comando copia "pesa" il file ...

PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 18:17
Martedì, 22/12/2009
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:
http://vbnet.mvps.org/index.html?code/fileapi/createfile_i ...

PM Quote
Avatar
gibra (Normal User)
Pro


Messaggi: 155
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 23:11
Martedì, 22/12/2009
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

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 11:51
Mercoledì, 23/12/2009
Testo quotato

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 :)

PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 14:56
Mercoledì, 23/12/2009
E come si apre un file in accesso esclusivo su VB6?
Trovo esempi in .NET ma non in Visual Basic 6

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo