|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2003
Messaggi: 3251
|
[Visual basic 2005] Tempo residuo copia di un file e/o velocità copia
Ciao a tutti,
sto facendo un programma per la copia dei file. Vorrei creare un CountDown che faccia la stima del tempo rimanente della copia (come quando in win si fa una copia di un file). In particolare dovrei crearlo per una serie di file messi in un array... Cmq il mio problema è che non saprei come conoscere la velocità di copia, per il resto poi mi arrangio... Qualche dritta? Ultima modifica di Therock2709 : 01-11-2007 alle 20:59. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2007
Città: Milano
Messaggi: 413
|
Prova a dare un occhiata qui:
http://msdn2.microsoft.com/en-us/lib...yf(VS.80).aspx Nota in particolar modo che vi è un parametro che è showUI che è quello che dovrebbe fare al caso tuo |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Apr 2003
Città: Teggiano (SA)
Messaggi: 705
|
Quote:
__________________
Le foto degli eventi della provincia di Salerno su ENJOYVALLO.COM (www.enjoyvallo.com) |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jun 2007
Città: Milano
Messaggi: 413
|
Quote:
|
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2003
Città: Teggiano (SA)
Messaggi: 705
|
lo so, ma lui non ha chiesto come copiare un file... ma come ricostruire il calcolo del tempo residuo in una copia di file....
__________________
Le foto degli eventi della provincia di Salerno su ENJOYVALLO.COM (www.enjoyvallo.com) |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Il calcolo della velocità lo fai secondo stime successive...
Inizialmente non presenti velocità e tempo...dopo che hai trasferito una certa quantità di dati (ad esempio il 5% o 100 KByte in caso il 5% sia troppo grande) calci la velocità di trasferimento ed il tempo rimanente. La velocità puoi ad esempio aggiornarla ogni secondo e di conseguenza il tempo rimanente. |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Apr 2003
Città: Teggiano (SA)
Messaggi: 705
|
Quote:
__________________
Le foto degli eventi della provincia di Salerno su ENJOYVALLO.COM (www.enjoyvallo.com) |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Certo, è chiaro, ma minore è la quantità di dati minore è la precisione della stima, soprattutto perché all'inizio entrano in gioco le varie bufferizzazioni del SO.
|
|
|
|
|
|
#9 | |||
|
Senior Member
Iscritto dal: Feb 2002
Messaggi: 906
|
Quote:
Quote:
Fai il tutto con quello che ti offre l'api oppure manualmente così: 1. Calcolo dei byte scritti (trasferiti) 2. Tempo impiegato (i secondi che passano) 3. Tempo stimato alla fine (che cambia a seconda della velocità di download) 4. Byte per secondo trasferiti pseudo code tempo = Timer - iTime TotBytes = TotBytes + ByteScritti TempoStimato= tempo/ TotBytes * ByteTotali (ByteTotali=Lunghezza del file) BytePerSec = TotBytes / tempo iTime=Timer stampa ByteTotali stampa TotBytes stampa tempo stampa TempoStimato stampa BytePerSec Quote:
Ultima modifica di okay : 03-11-2007 alle 17:56. |
|||
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jul 2003
Messaggi: 3251
|
Ok grazie dei consigli.
In realtà il mio attuale programmino usa proprio l'opzione ShowUI di windows (quello che usa sempre per la copia di un file). Il problema è che apre-chiude una finestrella per ogni file che copia ed è abbastanza fastidioso. Per l'uso degli stream reader/writer ci avevo pensato, ma volevo implementarlo usando i metodi FileCopy del System.IO. Quindi attualmente non ho traccia dei byte scritti fino a un certo punto Vabbe' vedrò di implementare la copia come un flusso di byte... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:10.




















