ممنون مبین جان
دوستان اگر امکاناتی دیگه میخوان بگن اگر تونستم به برنامه اضافه می کنم.
خودم الان با همین به آخر 3500 فایل کلمه Ali_ رو اضافه کردم فقط در 2 ثانیه ! برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
عضو VIP شهرسختافزار
ممنون مبین جان
دوستان اگر امکاناتی دیگه میخوان بگن اگر تونستم به برنامه اضافه می کنم.
خودم الان با همین به آخر 3500 فایل کلمه Ali_ رو اضافه کردم فقط در 2 ثانیه ! برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
MoBiN.R (21-08-09)
مدیر انجمن برنامه نویسی و رباتیک
سلام علی جان!برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط ™Ali برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
از برنامه ای که گذاشتی ممنونم. برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
فقط یه پیشنهاد داشتم:
اگه اشتباه نکنم (سی شارپ کار نمی کنم کهبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ) سورس برنامه با یه لوپ زیر شاخه ی اول رو چک می کنه. بعد با یه لوپ دیگه زیر شاخه ی دوم رو ... و همین جوری تا 5 مرحله میره. خب این جوری بقیه زیر شاخه ها بررسی نمی شن. به علاوه سورس برنامه خیلی گنگ میشهبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید .
به نظر من از این سورس برای متد Check استفاده کن:
این سورس در اصل VB.Net بود. بعد به سی شارپ تبدیلش کردم. شاید یکم مشکل داشته باشه.کد:public void Check(string currDir) { string Dir = null; string File = null; FileInfo FI = default(FileInfo); foreach (var File in Directory.GetFiles(currDir)) { FI = new FileInfo(File); lstFiles.Items.Add(FI.Name); } foreach (var Dir in Directory.GetDirectories(currDir)) { countFolders += 1; Application.DoEvents(); Check(Dir); } }
تازه می تونی لوپ های اضافی توی برنامه رو حذف کنی و فقط از یه تابع استفاده کنی.برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
خدا حفظ کنه اون سیستمو. رو سیستم من ممکنه موقع مرور 3500 تا فایل برنامه هنگ کنه...برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید . در کدی که قرار دادم می تونی با ایجاد وقفه هایی مشکل قفل شدن برنامه رو کم کنی.برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنیدبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ارسالی توسط ™Ali برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
البته خودت که استادی برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید ولی اگه جایی مشکل داشتی بگو برات توضیح بدم.
موفق باشی
آرمینبرای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
آخرین ویرایش توسط ravegoat در تاریخ 23-08-09 انجام شده است علت: اصلاح کد
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
™Ali (23-08-09)
عضو VIP شهرسختافزار
ممنون آرمین عزیز
والا خودم گیر کرده بودم که چجوری میشه یک Root Folder رو تا آخر بررسی کرد و مجبور شدم از اون کد استفاده کنم.
کد برنامه رو خیلی زیاد کرده بود ولی تو region گذاشتمش بلکه از دستش خلاص بشم !
واسه گیر نکردن از کد Application.DoEvents استفاده می کنم به زودی...
فقط تو کدی که گذاشتی این مورد یک تابع رو فراخوانی می کنه:
کد:Scanfolder(Dir);چیزی تو کدی اصلی دربارش نفهمیدم. این مورد رو بگی کد رو تصحیح می کنم !!
موفق باشی ..برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
عضو VIP شهرسختافزار
دوستان بعضی از 20 دقیقه فکر راه حلی بسیار کوتاه پیدا کردم برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
اول یه تابع در سطح فرم تعریف می کنیم به این شکل :
کد:private void ScanDir(string Dir) { foreach (string Folder in Directory.GetDirectories(Dir)) { foreach (string File in Directory.GetFiles(Folder)) lstFiles.Items.Add(Path.GetFileName(File)); ScanDir(Folder); } }حالا این طور بهش مقدار میدیم و فایل های موجود در Root رو هم اول کار بررسی می کنیم :
کد:foreach (string FileName1 in Directory.GetFiles(txtAdrrees.Text)) lstFiles.Items.Add(Path.GetFileName(FileName1)); ScanDir(txtAdrrees.Text);
واسه گرفتن خطاها هم از یه Try و Catch استفاده می کنیم!
:
چطوره؟! برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
ravegoat (23-08-09)
مدیر انجمن برنامه نویسی و رباتیک
این سورسی که خودت گذاشتی با سورسی که من گذاشتم هم ارز هستش.
ابتدا زیر شاخه های مسیر انتخاب شده بررسی میشه.
بعد هر کدوم از زیر شاخه به عنوان شاخه ی اصلی در نظر گرفته میشه و مرحله ی اول براش اجرا میشه.
این روند ادامه پیدا می کنه تا جایی که تمام شاخه های فرعی بررسی بشن.
در حقیقت متغیر Dir (یا Folder تو) زیر شاخه ای هستش که تبدیل به شاخه ی اصلی میشه و متد در رابطه با اون عمل می کنه.
شاد باشی
آرمین
'چو ایران نباشد، تن من مباد
Dim Armin As Iranian
If Iran.Enabled = False Then Armin.Enabled = False
™Ali (23-08-09)
عضو VIP شهرسختافزار
ممنون از این که سورسی که گذاشته بودی رو تصحیح کردی !
ولی جون خودم این روشه که گفتم همین طوری زد به سرم ! برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
1 کاربر در حال مشاهده این موضوع. (0 عضو و 1 میهمان)
Bookmarks