Oppure

Loading
11/09/09 9:20
TheEngi
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:
aaa
11/09/09 10:30
ruggy94
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()
aaa
11/09/09 11:11
TheEngi
Scusa in che senso le istruzioni?????
aaa
11/09/09 11:14
Il Totem
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.
aaa
11/09/09 11:16
TheEngi
ma sempre con il background worker
aaa
11/09/09 11:17
Il Totem
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.
aaa
11/09/09 11:22
TheEngi
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
aaa
11/09/09 11:28
TheEngi
No però se mi consigli di usare il BackGround Worker...
Dammi una mano please!?!?!?!?!?!?!?!
aaa