PDA

View Full Version : loading برای کپی فایل



arashsoft
چهارشنبه 12 شهریور 1393, 12:35 عصر
سلام
من پرژه ای را در دست دارد که با استفاده از آن سوال طرح می شود و یکی از امکانات اضافه کردن فیلم به سوال است
من می خواهم هر فیلمی که کاربر وارد می کند را c:\arash منتقل کند اما اگر حجم فیلم زیاد باشد نرم افزار تا زمانی که فایل کامل کپی نشده قفل می کند و سپس شروع به کار کی کند
من می خواهم تا زمانی که کپی پایان یافته یک prograssbar وضعیت واقعی کپی را نشان بده
ماننده زمانی که در حال استخراج در winrar یا زمانی که فایلی را کپی میکنید

arashsoft
چهارشنبه 12 شهریور 1393, 12:37 عصر
در ضمن من ابتدا یک prograssbar اضافه کردم با استفاده از تایمر به آن کد می دادم
اما نرم افزار قفل می شود و تایمر کار نمی کند

aminmousavi
چهارشنبه 12 شهریور 1393, 12:47 عصر
از همون پروگرس قبلیتون استفاده کنین ، اما عملیات کپی شدن فایل رو توی یک نخ (Thread) دیگه انجام بدید .

arashsoft
چهارشنبه 12 شهریور 1393, 12:50 عصر
سلام
خوب قبلی که واقعی نبود
من می خواهم درست نشان دهد
ماننده زمانی که درحال کپی فایل در کامپوتر هستیم

aliramazani
جمعه 21 شهریور 1393, 12:23 عصر
منم خواهان یادگیری این روش هستم

arash ka
شنبه 26 مهر 1393, 09:21 صبح
اول این رو به کد های برنامه اضافه کن

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);