Ciao a tutti,
una funzione del mio programma è quella di leggere un byte da un file e scrivere questo stesso byte in un altro file creato. Il codice sono riuscito a scriverlo è funziona tutto per bene, questo è il codice:
Codice sorgente - presumibilmente VB.NET
Dim r AsNew IO.FileStream(txtpercorso.Text, IO.FileMode.Open)
Dim h AsNew IO.BinaryReader(r)
Dim w AsNew IO.FileStream(txtpercorso.text, IO.FileMode.CreateNew)
For i AsDouble= 0 To r.Length- 1
w.WriteByte(h.ReadByte)
Next
Volendo potrei utilizzare questo codice però quando questo è in esecuzione giustamente il programma sembra bloccato e l'utente non sa a che punto è la copia, se la copia si sta facendo o il prog e in tilt, quindi per i file grandi è molto seccante. A questo punto ho deciso di aggiungere nella barra di tasto del prog una progressbar(progresso) non visibile andando ad aggiungere il codice per controllarla:
Codice sorgente - presumibilmente VB.NET
Dim r AsNew IO.FileStream(txtpercorso.Text, IO.FileMode.Open)
Dim h AsNew IO.BinaryReader(r)
progresso.visible=True
progresso.Value= 0
progresso.Maximum= r.Length
Dim w AsNew IO.FileStream(txtpercorso.text, IO.FileMode.CreateNew)
For i AsDouble= 0 To r.Length- 1
w.WriteByte(h.ReadByte)
progresso.value+= 1
Next
Questo nuovo codice però mi rallenta di molto la copia, vi parlo di 1 MB copiati in poco meno di un minuto e non riesco a capire perchè rallenta così tanto.
Mi potete aiutare please???
Grazie anticipate
Perchè il programma ha anche le funzione di dividere il file in più parti e sinceramente ho trovato questa soluzione ottima. Però se cè un altro metodo che conosci sarei felice di ascoltarti. Grazie