سلام دوستان
امروز داشتم نگاهی به پوشه Picture خودم می کردم که متوجه شدم در حدود 10 هزار عکس به این صورت نام گذاری شدند :
اون کلمه MRT منو خیلی اذیت می کرد چون زیاد خوشم ازش نمیاد برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
Wallpaper_1_MRT.jpg
Wallpaper_2_MRT.jpg
Wallpaper_3_MRT.jpg
Wallpaper_4_MRT.jpg
Rename کردن 10 هزار عکس کار بسیار سختی هست و چندین سال طول میکشه ولی حرفه برنامه نویسی باید به دردی بخوره!
برنامه ای که نوشتم به این صورت هست :
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
مرور : در قسمت مرور فولدر رو مشخص کنید. برنامه به صورت خودکار تا 5 زیر لایه از اون فولدر رو واسه پیدا کردن فایل جست و جو می کنه!
ابتدای حرف از پایان نام فایل ، با پسوند : این مورد فقط واسه حذف کردن کاربرد داره. به این صورت که مثلا واسه:
Wallpaper_1_MRT.jpg
شما باید از آخر اسم فایل همراه با پسوند بشمردید تا به کلمه M برسید! پس مقدار 7 رو باید وارد کنید! (نقطه پسوند یادتون نره!)
این کلمه را حذف کن / اضافه کن : کلمه ای که میخواید حذف کنید یا اضافه کنید رو به برنامه بدید. در ضمن بزرگ یا کوچک بودن حروف برای حذف کردن وجود نداره!
من اینطوری نسل کلمه MRT رو از آخر فایل ها برداشتم. هم چنین شما می تونید با این روش اسم/ تگ تبلیغاتی خودتون رو به آخر هزاران فایل اضافه کنید برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
دانلود Source سی شارپ از ضمیمه
فایل exe برنامه موجود در پوشه File Renamer\bin\Debug
با سپاس برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
برنامه پرکاربردیه
___________________________________________My Resume/CV
Mobin Ranjbar
Programmer / App Developer / Software Engineer / Scrum Master / Student
My System Config Validation
___________________________________________
™Ali (21-08-09)
ممنون مبین جان
دوستان اگر امکاناتی دیگه میخوان بگن اگر تونستم به برنامه اضافه می کنم.
خودم الان با همین به آخر 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)
ممنون آرمین عزیز
والا خودم گیر کرده بودم که چجوری میشه یک Root Folder رو تا آخر بررسی کرد و مجبور شدم از اون کد استفاده کنم.
کد برنامه رو خیلی زیاد کرده بود ولی تو region گذاشتمش بلکه از دستش خلاص بشم !
واسه گیر نکردن از کد Application.DoEvents استفاده می کنم به زودی...
فقط تو کدی که گذاشتی این مورد یک تابع رو فراخوانی می کنه:
کد:Scanfolder(Dir);چیزی تو کدی اصلی دربارش نفهمیدم. این مورد رو بگی کد رو تصحیح می کنم !!
موفق باشی ..برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
دوستان بعضی از 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)
ممنون از این که سورسی که گذاشته بودی رو تصحیح کردی !
ولی جون خودم این روشه که گفتم همین طوری زد به سرم ! برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
1 کاربر در حال مشاهده این موضوع. (0 عضو و 1 میهمان)
Bookmarks