Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Anche se non è un forum per la lingua ciò non vuol dire che non si debba scrivere in italiano corretto. Fra l'altro bastava una semplice correzione e non tutta questa polemica che fai.
Del resto ti ho aiutato con la soluzione per la parte codice, che vuoi ancora? Chiudiamola qui ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
Se ti ho offeso mi scuso, non voleva essere una polemica, infatti ho inserito anche le faccine che ridono, e ti ho sempre ringraziato per il tuo aiuto.
Premetto ho lavorato poco con la classe FileStream per i byte, quindi ho fatto delle ricerche e ho trovato questo, che ho adattato al mio codice, ma c'è un problema ho una cartella di prova con due cartelle al suo interno, in una ci sono 4 file da pochi byte e nell'altra 1 file superiore a 4 gb, con questo codice mi ha copiato solo la cartella con i 4 file, e l'altra cartella vuota.
Non devi leggere e scrivere il file in un solo passaggio. Devi allocare un buffer più piccolo e leggere/scrivere in un ciclo passando il valore di byte trattati alla bar ad ogni giro
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
backgroundWorker1.ReportProgress(numBytesToRead);//Passo alla progressBar il valore dei byte del file
}
}
catch(FileNotFoundException ioEx)
{
MessageBox.Show(ioEx.Message);
}
}
Io qui leggo un file alla volta per poi passarlo al FileStream ad ogni ciclo da dove prelevo i byte del file, infine copiarli e passare il valore alla progressbar.
Non devi leggere e scrivere il file in un solo passaggio. Devi allocare un buffer più piccolo e leggere/scrivere in un ciclo passando il valore di byte trattati alla bar ad ogni giro
Non ho capito bene quello che mi vuoi dire.
Dovrei leggere il file passato per poi inserire una parte di byte in un buffer e passarli alla progressbar?
Mi faresti un piccolo esempio se puoi.
Ultima modifica effettuata da lupetto77 il 20/06/2017 alle 17:27
e l'esempio che usa il buffer di 1024 * 1024 bytes
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
Ma ci sono 3 problemi:
1. Non viene rispettata la dimensione finale dei file, questo perche'¨ si scrive la dimensione del BUFFER_SIZE, pero' dovra' pure copiare la parte del file letta.
2. La copia risulta piu' lenta di quella fatta con il copia e incolla di windows.
3. Riprende il passo 1, i file di dimensioni piu' piccoli risultano sempre di 1kb, e anche quelli piu' grossi di dimensione possono risultare un pochino piu' grandi.
Idee su come posso risolvere?
Intanto continuo con le mie prove, grazie ancora.
Ultima modifica effettuata da lupetto77 il 21/06/2017 alle 22:53
Ma è rimasto un solo problema, quello della progressBar, mi da la seguente eccezione:
Codice sorgente - presumibilmente Plain Text
System.InvalidOperationException: 'Operazione cross-thread non valida: è stato eseguito l'accesso al controllo 'progressBar1' da un thread diverso da quello da cui è stata eseguita la creazione.'
Se si decommentano le seguenti righe funziona ma senza progressBar ovviamente:
Codice sorgente - presumibilmente Plain Text
Nel metodo GetFiles
progressBar1.Value = 0;
progressBar1.Maximum = (int)bytesTotali;
Codice sorgente - presumibilmente C# / VB.NET
Nella funzione CopyFilesAsync()
int percentuale = Convert.ToInt32(((numRead / bytesTotali) * 100));
backgroundWorker1.ReportProgress(percentuale);
Spero che qualcuno mi possa dare una mano, ci ho provato e riprovato ma niente
Continuerò a provare ma la vedo dura questa volta, spero in un aiuto da voi esperti.
Ultima modifica effettuata da lupetto77 il 22/06/2017 alle 18:00