تغییر دسته جمعی نام فایلها با سی شارپ
تغییر دسته جمعی نام فایلها با سی شارپ
برای امروز سورس کدی رو آماده کردم که با استفاده از اون میتونیم فایلهای مورد نظرمون رو به
صورت دسته جمعی تغییرنام بدیم یا بخشی از نام فایلها رو حذف کنیم و یا بخشی رو بهشاضافه
کنیم(ابتدا یا انتهای نام فایل)
برای شروع فرمی مانند فرم بالا طراحی کنید.
فضای نام using System.IO; را به پروژه اضافه کنید.
آرایه از رشته ای با نام Path به صورت عمومی تعریف کنید.
1 |
Strint[] path; |
روی دکمه […] دو بار کلیک کنید و کد های زیر را در آن بنوییسید
1 2 3 4 5 6 7 8 9 10 11 |
FolderBrowserDialog fbd = new FolderBrowserDialog(); if (fbd.ShowDialog() == DialogResult.Cancel) return; textBox1.Text = ""; string DirectoryPath = fbd.SelectedPath; path = Directory.GetFiles(DirectoryPath); textBox1.Text = DirectoryPath+@"\"; listBox1.Items.Clear(); foreach (string file in path) { listBox1.Items.Add(file); } |
با استفاده از کلاس FolderBrowserDialog یک کادر برای انتخاب مسیر فایلها میسازیم.
مسیر انتخاب شده را در متغیر رشته ای DirectoryPath ذخیره میکنیم.
با استفاده از تابع GetFiles از کلاس Directory که خروجی آن یک آرایه ای از رشته ها می باشد ارا یه Path را پر
میکنیم
با یک حلقه Foreach لیست باکس را پر میکنیم.
دکمه Rename را دوبار کلیک کنید و کدهای زیر را در آن قرار دهید
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
for (int i = 0; i < listBox1.Items.Count; i++) { FileInfo Finfo = new FileInfo(listBox1.Items[i].ToString()); string name = Finfo.Name; if (textBox2.Text.Length > 0 && textBox3.Text.Length > 0) { name = name.Replace(textBox2.Text.Trim(), textBox3.Text.Trim()); } if (textBox5.Text.Length > 0) { name = textBox5.Text + name; } if (textBox6.Text.Length > 0) { name=name.Replace(Finfo.Extension, ""); name += textBox6.Text+Finfo.Extension; } if (checkBox1.Checked) { name = name.Replace(Finfo.Extension, ""); name += "[" + Finfo.CreationTime.Year +"_"+ Finfo.CreationTime.Month +"_"+ Finfo.CreationTime.Day+ "]" + Finfo.Extension; } Finfo.MoveTo(textBox1.Text + name); } path = Directory.GetFiles(textBox1.Text); listBox1.Items.Clear(); foreach (string file in path) { listBox1.Items.Add(file); } |
در این کد با استفاده از یک حلقه For که شمارنده آن تعداد آیتم های لیست باکس است تک تک فایلها را بررسی میکنیم.
با استفاده از کد زیر نام اولین فایل را در شی از نوع FileInfo قرار داده ایم:
1 |
FileInfo Finfo = new FileInfo(listBox1.Items[i].ToString()); |
با استفاده از پراپرتی Name نام فایل را در متغیر رشته ای با نام name ذخیره کرده ایم.
با استفاده از دستورات IF تععین کرده ایم که اگر کار بر تنضیماتی انجام داد آن را بر روی فایل اعمال کن.
مثلا اگر کاربر مقداری در تکس باکسهای ۲و۳ وارد کند با استفاده از تابع Replace مقدار موجود در تکس ۳ به جای تکس ۲
در نام فایل قرار میگیرد.
در صورتی که کاربر تیک “Use Date and Time Creation” تاریخ جاری سیستم به انتهای فایل اضافه خواهد شد.
و در آخر هم با یک حلقه دیگر محتوای دایرکتوریمورد نظر دوباره در لیست باکس قرار میگیرد.”بعد از تغییر نام فایلها.”
برخی دیگر از وابع و پراپرتی های کلاس FileInfo:
1 2 3 4 5 6 7 8 |
Finfo.CopyTo("مسیر فایل برای کپی"); Finfo.Extension;//پسوند فایل Finfo.Delete();//Delete File Finfo.FullName;//مسیر + نام فایل Finfo.LastAccessTime;//زمان آخرین دسترسی به فایل Finfo.LastWriteTime;//زمان آخرین نوشتن در فایل Finfo.Length;//حجم فایل Finfo.Name;//نام فایل |