Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. 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:


The Engineer
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()


"Se vuoi che una funzione di un programma non venga mai trovata, descrivila nella documentazione"
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?????


The Engineer
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.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
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


The Engineer
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.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
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


The Engineer
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!?!?!?!?!?!?!?!


The Engineer
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:


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