Hvordan koble en Progress Bar til IO.Stream

Hvordan koble en Progress Bar til IO.Stream


En fremdriftsindikator til IO stream viser fremdriften laster opp eller ned filer. En IO stream håndterer inn- og utgående funksjonalitet ved hjelp av bekker. En strøm er en abstraksjon som representerer en enhet der inngang og utgang er gjennomført. Strømmer er knyttet til en fysisk kilde som tastatur eller en inngang konsoll. C ++ gir standard iostream bibliotek inkludert grunnleggende klasse maler, typer og manipulatorer.

Bruksanvisning

1 Klikk "Start", "Alle programmer" og "Visual Studio" for å angi Integrated Development Environment. Velg programmeringsspråk som Visual C ++. Klikk "Form1.cs" for å bytte til utformingsvisning. Klikk "Toolbox" og "Button" for å opprette en ny knapp som heter "Button1."

2 Dobbeltklikk på Button1 og skriv inn følgende kode for å få informasjon om input filen:

bruker System;
bruker System.IO
System.IO.FileInfo Fileinfo = ny System.IO.FileInfo (FileTextBox.Text);

3 Les fra fil "c: \ text1.txt" inn i nye Filestream variabelen "stream" ved hjelp av følgende kode:

bruker (System.IO.FileStream stream = ny System.IO.FileStream ( "c: \ text1.txt", System.IO.FileMode.Open, System.IO.FileAccess.Read))

Bruken av ProgressChanged hendelsen rapporterer fremgang opplasting. Skaff opplasting pågår ved hjelp vairable "uploadStreamWithProgress."

{ using (StreamWithProgress uploadStreamWithProgress = new StreamWithProgress(stream))
{ uploadStreamWithProgress.ProgressChanged += uploadStreamWithProgress_ProgressChanged;

4 Dobbeltklikk på Form1. Få filopplasting fremgang via følgende funksjoner.

Definer variable bytesRead: privat lang bytesRead;

Les lastet bytes i variabelen "bytesRead" i funksjon StreamWithProgress til

public StreamWithProgress(FileStream file)
{
this.file = file;
length = file.Length;
bytesRead = 0;
if (ProgressChanged != null) ProgressChanged(this, new ProgressChangedEventArgs(bytesRead, length));
}

Beregn og returnere fremdriften av opplasting i GetProgress funksjon:

public double GetProgress()
{
return ((double)bytesRead) / file.Length;
}