سلام
دوستان به کدی که نوشتم نگاه کنید مشکل این کد چیه که وقتی ProgressBar
پر میشه خطا میده .
-----------------------کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
دوستان به کدی که نوشتم نگاه کنید مشکل این کد چیه که وقتی ProgressBar
پر میشه خطا میده .
-----------------------کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
Last edited by MohammadJavad.T; 27-04-2009 at 23:08.
سلام دوست عزیز....
واضح است که با پیش رفت حلقه مقدا Value از مقدار Maximum بیشتر میشود.
مقدار Value همواره باید بین Minimum و Maximum باشد.
این عدد 10 عزیزتان کار را خراب میکند!
سلام خدمت استاد عزیز h2
ممنون بابت پاسخی که دادین
کد بالا را تبدیل به این کد کردم خوب جواب داد .
البته حس میکنم زیاد بهینه نباشه نظر شما رو میخواستم بدونم از همین روش استفاده کنم ؟
این رو هم بگم قصد من فقط کپی بانک access از ادرسی به ادرس دیگر است (backup
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
آخه اینکه شما نوشته اید که یک if ساده است و من درست درکش نمیکنمالبته حس میکنم زیاد بهینه نباشه نظر شما رو میخواستم بدونم از همین روش استفاده کنم ؟
ولی ...
اگر میخواهید یک تک فایل را کپی کنید...این رو هم بگم قصد من فقط کپی بانک access از ادرسی به ادرس دیگر است
میتوانید از دیالگو خود سیستم عامل هم استفاده کنید...
ولی اگر تمایل به کپی دستی و نشان دادن روند پیشرفت در برنامه دارید...
- فایل منبع و مقصد را به صورت Stream باز کنید.
- حجم فایل منبع را برابر Max نوار پیشرفت قرار دهید
- از فایل منبع در بلوک های مشخص (مثلاً 64KB) اطلاعات را بخوانید و در فایل مقصد بریزید
- Value نوار پیشرفت را هم با آفست پرشده فایل مقصد تغذیه کنید.
(ضمنا الآن دیگر چندان از DoEvents استفاده نمیککند..)
موفق باشید.
سلام خدمت H2 عزیز .
به طور مثال وقتی یه فایل 500 مگابایتی در حال کپی شدن usage سی پی یو میره رو 50 %آخه اینکه شما نوشته اید که یک if ساده است و من درست درکش نمیکنم
نا زمانی که حلقه کاره خودش رو تموم کنه .
منظور شما این که از توابع API استفاده کنم ؟میتوانید از دیالگو خود سیستم عامل هم استفاده کنید...
ممنون بابت توضیحات.
سلام
در ضمینه کد شما من یک ایهام دارم .... !
برداشت میکنم که یک فایل قرار است کپی شود.این رو هم بگم قصد من فقط کپی بانک access از ادرسی به ادرس دیگر است
برداشت میکنم که چند فایل قرار است کپی شود!For i = 0 To 10
FileCopy(a, b)
آیا منظورتان از FileCopy همان تابع قدیمی VB6 است؟
راستی بدانید که این تابع در VB.Net در واقع System.IO.File.Copy را اجرا میکند.
بالاخره مشکل سر یک فایل است یا چند فایل؟
بله.منظور شما این که از توابع API استفاده کنم ؟
البته خود تابع System.IO.File.Copy هم از CopyFile استفاده میکند ولی این api دیالوگ و شمای دیداری برای کپی ندارد.
در مقابل SHFileOperation اینکار را مثل داخل خود MyComputer انجام میدهد، یعنی دقیقاً مثل زمانی که در خود ویندوز فرمان کپی بدهید، با همان دیالوگها و تاییدیه Replace و...
سلامدر ضمینه کد شما من یک ایهام دارم .... !
این کل کدی است که نوشته ام.
فقط یک فایل قرار کپی شود ! .
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیدبله از همان توابعی که در VB6 خدا بیامرز بود. که در دات نت یک متد است .آیا منظورتان از FileCopy همان تابع قدیمی VB6 است؟[
من ابتدا از این فضا استفاده کردم ولی موقع Replace شدن به مشکل بر میخورد برا خدم هم خیلی عجیب بودراستی بدانید که این تابع در VB.Net در واقع System.IO.File.Copy را اجرا میکند.
که امدم از System.IO.File.Replace هم استفاده کردم بازم نشد . ولی وقتی از متد FileCopy استفاده کردم
بدون مشکل کار میکرد.
-------------------------------------------------------------------
فقط تنها مشکلی که در حال حاضر دارم اگه این فایلی که قرار کپی بشه حجمش بره بالا مثلا 100 مگ
usage سی پی یو میره رو 50 %
نا زمانی که حلقه کاره خودش رو تموم کنه .
که فکر کنم این کار اصلا بهینه نیست !!!
Last edited by MohammadJavad.T; 01-05-2009 at 23:23.
سلام
فقط یک فایل قرار کپی شود
میبخشید ولی شما متوجه هستید چه کدی نوشته اید؟
شما 10 بار مجزا دارید f1 را به محل f2 کپی و Replace میکنید! این که نوار پیشرفت نمیشود!!!
یعنی نوار پیشرفت شما هر بار یک خانه به جلو میرود در واقع یکبار فایل کپی شده و تمام شده!
شما در قبال کپی یک فایل 500M در واقع یک فرآینده کپی 5G را استارت میکنید.
! ! ! ! !
من هم به شدت موافق هستم!که فکر کنم این کار اصلا بهینه نیست !!!
دو دستور زیر برابر هستند ! ! !من ابتدا از این فضا استفاده کردم ولی موقع Replace شدن به مشکل بر میخورد برا خدم هم خیلی عجیب بود
که امدم از System.IO.File.Replace هم استفاده کردم بازم نشد . ولی وقتی از متد FileCopy استفاده کردم
و در واقع اولی خودش دومی ا اجرا میکند.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کد پیشنهادی تشریح شده در پست 4
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در صورت تمایل میتوانید از چند ریسمانی هم استفاده کنید.
موفق باشید.
سلام خدمت استاد عزیز H2
من که همون اول گفتم اصلا کد بهینه ای نیست !!!میبخشید ولی شما متوجه هستید چه کدی نوشته اید؟
شما 10 بار مجزا دارید f1 را به محل f2 کپی و Replace میکنید! این که نوار پیشرفت نمیشود!!!
یعنی نوار پیشرفت شما هر بار یک خانه به جلو میرود در واقع یکبار فایل کپی شده و تمام شده!
شما در قبال کپی یک فایل 500M در واقع یک فرآینده کپی 5G را استارت میکنید.
نمیدونستم پارامتر دیگری برای overwrite کردن داره ( جلل خالقکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید)
خیلی ممنون بابت سورس کدی که پیشنهاد کردین و نوشتین .![]()
اين همه كد براي كپي كردن 1 فايل؟
مگه BackGroundWorker چه مشكلي داره؟
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)