کپی کردن یک فایل در سی شارپ و نمایش وضعیت پیشرفت در Progressbar

باسلام
برای کپی کردن یک فایل و نمایش وضعیت پیشرفت کپی ، می بایست ابتدا روال زیر را به پروژه تون اضافه کنید.
در اصل این روال سه تا پارامتر میگیره که باید مقدار دهی بشن.
پارامتر اول فایل ومسیر مبدا است ، پارامتر دوم فایل و مسیر مقصد و در پارامتر سوم نام پروگرسبار تون باید بدید.

public void Copyfile(string sourceFileName, string targetFileName, ProgressBar progress)
{
    progress.Value = 0;
    System.IO.FileStream S_file = new System.IO.FileStream(sourceFileName, System.IO.FileMode.Open);
    System.IO.FileStream D_file = new System.IO.FileStream(targetFileName, System.IO.FileMode.Create);
    Int64 len = S_file.Length ;
    for (Int64 i = 0; i < len; i++)
    {
	D_file.WriteByte((byte)S_file.ReadByte());
	if (i % 1000 == 0)
	{
	    progress.Value = (int)(i * 100 / len)+1;
	    Application.DoEvents();
	}
    }
    S_file.Close();
    D_file.Close();
    progress.Value = 100;
}

سپس یک دکمه و یک کنترل پروگرسبار به فرم اضافه کنیدو برای کدهای دکمه کپی ، کافیست روال فوق را فراخوانی و به ان مقدار بدهید مثال:

Copyfile(@"D:\test.pdf", @"D:\test_2.pdf", progressBar1);

ارسال : شهریاری