PDA

View Full Version : فایلهای بازگشتی



mustafa13
چهارشنبه 25 شهریور 1388, 15:05 عصر
void CopyDirectory(DirectoryInfo source, DirectoryInfo destination)
{
if (!destination.Exists)
destination.Create();
// Copy all files.
FileInfo[] files = source.GetFiles();
foreach (FileInfo file in files)
file.CopyTo(Path.Combine(destination.FullName, file.Name));

// Process subdirectories.
DirectoryInfo[] dirs = source.GetDirectories();
foreach (DirectoryInfo dir in dirs)
{
// Get destination directory.
string destinationDir = Path.Combine(destination.FullName,dir.Name);
// Call CopyDirectory() recursively.
CopyDirectory(dir, new DirectoryInfo(destinationDir));
}
}

میخوام همین حالتو با یک progressbar یا یک Backgrundworker انجام بدم چون حجم فولدر ها بالای ه 2 گیگ هست و برنامه فریز میشه میشه راه نمایی کنین چه جوری progress bar بزارم ؟

mustafa13
پنج شنبه 26 شهریور 1388, 14:31 عصر
یکی از مهندسین جواب بده ثواب داره

Reza_Yarahmadi
پنج شنبه 26 شهریور 1388, 15:39 عصر
یه روش ساده اینه که شما این متد رو توی یه نخ جدید اجرا کنید و اول این متد با توجه به مقدار فایلی که تا الان کپی شده ، مقدار ProgressBar رو اضافه کنید. واسه به دست آوردن مقداری که تا الان کپی شده یه متغیر سراسری تعریف کنید و بعد از دستور (...)file.CopyTo اندازه فایل رو (خاصیت Length) به این متغیر سراسری اضافه کنید و با توجه به نسبت این متغیر و اندازه دایرکتوری اولیه خاصیت Value از ProgressBar رو اضافه کنید.