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
C# / VB.NET - Barra progresso per copia cartelle?!?!? Vb.net
Forum - C# / VB.NET - Barra progresso per copia cartelle?!?!? Vb.net

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
TheEngi (Ex-Member)
Pro


Messaggi: 145
Iscritto: 30/08/2009

Segnala al moderatore
Postato alle 11:20
Venerdì, 11/09/2009
Innanzitutto salve a tutti io avevo già postato per un problema con la barra progresso per la copia di alcuni file attraverso il comando filecopy.
Adesso mi è sorto un nuovo problema io devo copiare cartelle per un'ammontare di 800 mb attraverso il comando:

My.Computer.FileSystem.CopyDirectory("Cartella da copiare", "Cartella in cui copiare", True)

Adesso correi che qualcuno mi aiutasse inserire in questo mio form un codice o più codici per far andare paripasso con la copia delle cartelle la progress bar e magari che indichi anche la percentuale a cui è (tipo 1%,2%,ecc...) vi ricordo che l'ammontare dei mb delle cartelle da copiare sono di circa 800 mb e che sto lavorando con visual basic.net.
vi ringrazio in anticipo per la vostra collaborazione!!!!!!!!:hail::hail:

PM Quote
Avatar
ruggy94 (Member)
Guru


Messaggi: 890
Iscritto: 21/04/2008

Segnala al moderatore
Postato alle 12:30
Venerdì, 11/09/2009
Ma devi copiarle in modo sincrono o asincrono?
Nel secondo caso, puoi usare un BackgroundWorker. Inserisci le istruzioni da eseguire nell'evento BackgroundWorker_DoWork() e poi quando vuoi iniziare la copia fai BackgroundWorker.RunWorkerAsync()

PM Quote
Avatar
TheEngi (Ex-Member)
Pro


Messaggi: 145
Iscritto: 30/08/2009

Segnala al moderatore
Postato alle 13:11
Venerdì, 11/09/2009
Scusa in che senso le istruzioni?????

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 13:14
Venerdì, 11/09/2009
Per sapere lo stato del progresso non puoi certo delegare la copia ad un'altra funzione. Devi scrivere un codice che copi "manualmente" tutti i file e le cartelle ivi contenute, così da avere controllo sui dati in questione. Da questi puoi desumere la dimensione della cartella iniziale e quella dei file copiati, quindi calcolare il rapporto e perciò la percentuale di avanzamento. Questo può essere fatto in modo sincrono o asincrono. Fortemente consigliata la seconda scelta, come diceva ruggy, per evitare di bloccare il thread principale.

PM Quote
Avatar
TheEngi (Ex-Member)
Pro


Messaggi: 145
Iscritto: 30/08/2009

Segnala al moderatore
Postato alle 13:16
Venerdì, 11/09/2009
ma sempre con il background worker

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 13:17
Venerdì, 11/09/2009
E' una opzione comoda, sicuramente di più che usare un thread separato, in quanto con i suoi eventi evita le solite eccezioni di accesso Cross-Thread.

PM Quote
Avatar
TheEngi (Ex-Member)
Pro


Messaggi: 145
Iscritto: 30/08/2009

Segnala al moderatore
Postato alle 13:22
Venerdì, 11/09/2009
Sub CopiaFiles(ByVal fileOrigine as string, ByVal fileDestinazione as String)
My.Computer.FileSystem.Directory(DirOrigine, DirDestinazione,
FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing)
End Sub

può andare bene

PM Quote
Avatar
TheEngi (Ex-Member)
Pro


Messaggi: 145
Iscritto: 30/08/2009

Segnala al moderatore
Postato alle 13:28
Venerdì, 11/09/2009
No però se mi consigli di usare il BackGround Worker...
Dammi una mano please!?!?!?!?!?!?!?!

PM Quote
Avatar
TheEngi (Ex-Member)
Pro


Messaggi: 145
Iscritto: 30/08/2009

Segnala al moderatore
Postato alle 14:06
Venerdì, 11/09/2009
:d qualcuno potrebbe aiutarmi non capisco più niente ve lo giuro please!:hail:

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo