سلام چگونه میشود فایلی کپی شود و همراه با آن prograssbar نمایش یابد:متفکر:
Printable View
سلام چگونه میشود فایلی کپی شود و همراه با آن prograssbar نمایش یابد:متفکر:
با استفاده استریم ها (Stream) بخش بخش (مثلا هزار بایت هزار بایت) میخونن و بعد از خوندن هر چند بایت، توی فایل جدید میریزند.
طول کل فایل و مقدار بایتهای خونده شده برای نمایش پروگرس مورد نیازه. ضمنا باید بصورت چند نخی کپی فایل رو بنویسین تا لایه UI از کار نیفته و Not Response نشه.
لطفا سورس بگذارید
لطفا سورس بگذارید اگر می توانید
سلام
خوب شما باید یکم بنویسید جایی که مشکل دارید بچه ها کمک کنن، اینجوری نمی شه که براتون کد بنویسن
من یه تایع کپی و نحوه ی استفاده ش رو می ذارم اینجا، شما می تونید با توجه به برنامه تون آرگومان ورودی هم براش در نظر بگیرید
خدمت شما:
private void button1_Click(object sender, EventArgs e)
{
Copy();
MessageBox.Show("Copy Done !!!");
progressBar1.Value = 0;
}
void Copy()
{
int halfAMeg = (int)(1024 * 1024 * 0.5);
FileStream strIn = new FileStream("filePathIn", FileMode.Open);
FileStream strOut = new FileStream("filePathOut", FileMode.Create);
byte[] buf = new byte[halfAMeg];
while (strIn.Position < strIn.Length)
{
int len = strIn.Read(buf, 0, buf.Length);
strOut.Write(buf, 0, len);
SetProBar(strIn.Position, strIn.Length);
}
}
private delegate void SetProBar_CallBack(long val, long max);
private void SetProBar(long val, long max)
{
if (progressBar1.InvokeRequired)
{
SetProBar_CallBack callBack = new SetProBar_CallBack(SetProBar);
this.Invoke(callBack, new object[] { val, max });
}
else
{
progressBar1.Maximum = Int32.MaxValue;
progressBar1.Value = (int)(Int32.MaxValue / (max / val));
}
}
موفق باشید :)