کلاس Directory

کلاس Directory داراي متدهايي براي ايجاد، حذف، انتقال و انجام اعمال مختلف بر روي پوشه‌ها است. متدهاي اين کلاس استاتيک هستند و در نتيجه براي استفاده از انها لازم به ايجاد نمونه از کلاس نيست. در جدول زير متدهاي مفيد کلاس Directory آمده است.

متد توضيح
CreateDirectory() ايجاد يک پوشه جديد
Delete() حذف يک پوشه موجود
Exists() مشخص می‌کند که آيا يک پوشه در يک مسير مشخص وجود دارد يا نه.
GetCurrentDirectory() پوشه فعلي را بر می‌گرداند.
GetDirectories() نام پوشه‌هایی را که در يک پوشه مشخص وجود دارند را بر می‌گرداند.
GetFiles() نام فايلهايي را که در يک پوشه مشخص وجود دارند را بر می‌گرداند.
GetSystemFileEntries() يک آرايه رشته‌ای که شامل نام فايلها و پوشه‌های موجود در يک پوشه مشخص است را بر می‌گرداند.
GetParent() پوشه والد يک مسير را بر می‌گرداند.
Move() پوشه را به مکان جديدي منتقل می‌کند.

ايجاد يک پوشه با استفاده از متد CreateDirectory

براي ايجاد يک پوشه از متد ()CreateDirectory استفاده می‌شود. به تکه کد زير توجه کنيد :

Directory.CreateDirectory(@"C:DirectorySubdirectory");

اين متد يک آرگومان از نوع رشته که همان مسير ايجاد پوشه است را دريافت می‌کند. متد ()CreateDirectory همچنين همه پوشه‌ها و زير پوشه‌ها را با استفاده از مسيري که به آن داده می‌شود ايجاد می‌کند.

حذف يک پوشه با استفاده از متد Delete

اگر قصد حذف کردن يک پوشه را داشته باشيد می‌توانید از متد ()Delete استفاده کنيد. اين متد نيز يک آرگومان از نوع رشته دريافت می‌کند که همان مسيري است که پوشه دران قرار داد.

Directory.Delete(@"C:DirectorySubdirectory");

در حالت پيشفرض متد ()Delete اگر يک پوشه خالي نباشد يک استثناء (exception) را توليد می‌کند. اگر بخواهيد همه فايلها و زير پوشه‌های يک پوشه را حذف کنيد بايد از يکي ديگر از سربارگذاري هاي متد ()Delete که داراي پارامتر دومي از نوع بولي است استفاده کنيد. اگر مقدار آن را true قرار دهيد هر چيزي که داخل پوشه مشخص شده است حذف می‌شود.

Directory.Delete(@"C:DirectorySubdirectory", true);

تست وجود يک پوشه با استفاده از متد Exists

مانند کلاس File، کلاس Directory هم داراي متد ()Exists است که به کاربر اعلام می‌کند که آيا در يک مسير مشخص پوشه مورد نظر وجود دارد يا نه؟

if (Directory.Exists(@"C:DirectorySubdirectory"))
   Console.WriteLine("The directory exists.");

به دست آوردن ليست زير پوشه‌ها و فایل‌ها با استفاده از متد GetDirectories

متد ()GetDirectories همه زير پوشه‌های يک مسير خاص را در اختيار ما قرار می‌دهد. براي روشن شدن مطلب اجازه بدهيد يک پوشه در درايو C ايجاد کنيم (C:Directory) و پوشه‌هایی را در داخل اين پوشه با نامهاي Subdirectory2 ،Subdirectory1 و Subdirectory3 قرار دهيم. براي به دست آوردن ليست زير پوشه‌ها به صورت زير عمل می‌کنیم:

string[] directories = Directory.GetDirectories(@"C:");

foreach (string directory in directories)
{
    Console.WriteLine(directory);
}
C:DirectorySubdirectory1
C:DirectorySubdirectory2
C:DirectorySubdirectory3

اگر بخواهيد فقط نام زير پوشه‌ها را نشان دهيد، می‌توانید به صورت زير عمل کنيد:

Console.WriteLine(directory.Substring(directory.LastIndexOf(@"") + 1));

براي اين کار از متدهاي کلاس Path هم استفاده کنيد که در درس‌های آينده در مورد آن توضيح خواهيم داد. متدهاي ()GetFiles و ()GetSystemFileEntries بسيار شبيه به متد ()GetDirectory هستند. متد ()GetFiles يک آرايه رشته‌ای که شامل ليست فایل‌های داخل پوشه است را بر می‌گرداند و متد ()GetSystemFileEntries متشکل از ليست فایل‌ها و پوشه‌ها است.

انتقال يک پوشه با استفاده از متد Move

براي انتقال يک پوشه به يک مکان ديگر، می‌توان از متد ()Move که دو آرگومان قبول می‌کند استفاده نمود. اولين آرگومان نام پوشه مورد نظر و دومين آرگومان مکاني است که پوشه بايد به آنجا منتقل شود.

Directory.Move(@"C:Directory", @"C:AnotherDirectoryDirectory");