حدف تمام فایل های یک پوشه

قبل از هر کاری برای استفاده از کلاس Directory می بایست کتابخانه مورد نظر را به پروژه اضافه کنید. برای این کار به صورت زیر عمل میکنیم :

using System.IO;

 Directory.GetFiles :

لیستی از اسامی فایل ها را (به همرا آدرس کامل) به صورت رشته ای بر میگرداند .متد GetFiles  به 3 صورت  overload شده است که به صورت زیر می باشد :

GetFiles(String) :

 در این حالت یک آدرس (نسبی یا مطلق) را به عنوان پارمتر با متد GetFiles میدهیم . در صورتی که آدرس فوق دارای فایلی یا فایل هایی باشد به صورت آرایه ای از رشته ها برگردانده می شود .

string[] filePaths = Directory.GetFiles(@"c:\MyDir\");

foreach (string filePath in filePaths)

  File.Delete(filePath);

GetFiles(String,String) :

در این حالت علاوه بر اینکه یک آدرس باید به عنوان پارامتر بفرستیم می توانیم  مقدار برگشتی را محدود تر کنیم . به طور مثال می توانیم تعیین کنیم فقط فایل هایی برگشت داده شود که اولین کاراکتر اسم آنها s است .

نکته: پرامتر دوم از عبارات منظم پشتیبانی نمی کند.تنها دو کارکتر * ,?  قابل قبول می باشند .

string[] List = Directory.GetFiles(@"C:\Users\pc\Desktop\1\","s*");

            foreach (string item in List)

                File.Delete(item);

? : با صفر یا یک کاراکتر مطابقت میکند .

* : با صفر و یا چند کاراکتر مطابقت میکند .

در مثال بالا تمام فایل هایی برگردانده خواهند شد که اسم آنها با s شروع شود و صفر یا چند کاراکتر دیگر هم داشته باشد .

string[] List = Directory.GetFiles(@"C:\Users\pc\Desktop\1\","s?");

            foreach (string item in List)

                File.Delete(item);

 فقط فایل هایی برگدانده می شود که اسم آنها با s شروع شده و بعد از کاراکتر s حداقل صفر یا یک کاراکتر وجود داشته باشد .

GetFile(String,String,SearchOption) :

 در این حالت پارامتر آخر از نوع داده های شمارشی SearchOption می باشد . در واقع توسط این پارمتر می توان تعیین کنید که فقط فایل هایی داخل پوشه اصلی برگردانده شود و یا فایل های پوشه های داخلی هم برگردانده شود .

SearchOption دارای دو مقدار برای انتخاب می باشد :

AllDirectories :

 در صورتی که آدرس داده شده در پارامتر اول دارای زیر پوشه هایی باشد تمام فایل های موجود در داخل پوشه های داخلی هم برگدانده می شود .

TopDirectoryOnly :

فقط فایل های داخل پوشه اصلی (پارمتر اول) برگرداده می شود .

در حال اول ((GetFiles(string) که فقط یک پارامتر آدرس فرستاده می شود می توان کد را  با استفاده از delegate کوتاه تر نوشت به صورت زیر :

  Array.ForEach(Directory.GetFiles(@"c:\MyDir\"),delegate(string path) { File.Delete(path); });

 


توسط : عثمان رحیمی  2 ماه قبل ، سه شنبه 4 شهریور 1393 ساعت 05:39  0  1423

نظر شما برای ما مهم است و به ما در بهبود سایت کمک میکند.


ارسال نظر
  • نام (اختیاری ) :
  • پست الکترونیک :
  • توضیحات :

مطالب مرتبط