حسین احمدی
بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

آموزش کار با پوشه ها و کلاس Directory در سی شارپ

در زبان سی شارپ، می توان بوسیله کلاس Directory با پوشه ها کار کرد. همانند کلاس File، کلاس Directory یکسری متدهای static دارد که به اجازه انجام عملیات های مختلف بر روی پوشه ها را می دهد. در این مطلب به بررسی مهمترین متدهای این کلاس خواهیم پرداخت:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

برای یادگیری و آموزش سی شارپ ( آموزش زبان برنامه نویسی سی شارپ ) رایگان به این لینک بروید

ایجاد پوشه

بوسیله متد CreateDirectory می توان پوشه جدید در مسیر مشخص شده ایجاد کرد:

Directory.CreateDirectory("D:\\TestFolder\\Test");

این دستور، از بالاترین سطح شروع به ایجاد پوشه ها می کند. برای مثال، در کد بالا در صورت عدم وجود TestFolder این پوشه ایجاد شده و سپس پوشه Test داخل ایجاد می شود.

بررسی وجود یک پوشه

بوسیله متد Exists می توان بررسی کرد که یک پوشه وجود دارد یا خیر:

if (!Directory.Exists("D:\\Test"))
{
    Directory.CreateDirectory("D:\\Test");
}

حذف یک پوشه

دستور Delete در کلاس Directory برای حذف پوشه استفاده می شود:

if (!Directory.Exists("D:\\Test"))
{
    Directory.Delete("D:\\Test");
}

دریافت لیست فایل های موجود در یک پوشه

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

var files = Directory.GetFiles("D:\\MyFolder");

foreach (var file in files)
{
    FileInfo info = new FileInfo(file);
    Console.WriteLine(info.Extension);
}

در کد بالا، یک کلاس جدید استفاده شده با نام FileInfo که بوسیله آن می توان اطلاعات یک فایل را بدست آورد و همچنین امکان خواندن و نوشتن داخل یک فایل را به ما می دهد.در صورتی که بخواهیم لیست فایل ها را بر اساس یک الگوی خاص بدست آوریم، برای مثال فقط فایلی که پسوند txt دارند، به صورت زیر کد بالا را تغییر می دهیم:

var files = Directory.GetFiles("D:\\MyFolder", "*.txt");

foreach (var file in files)
{
    FileInfo info = new FileInfo(file);
    Console.WriteLine(info.Extension);
}

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

var files = Directory.GetFiles("D:\\MyFolder", "*.txt",SearchOption.AllDirectories);

foreach (var file in files)
{
    FileInfo info = new FileInfo(file);
    Console.WriteLine(info.Extension);
}

بدست آوردن زیر پوشه های داخل یک پوشه

بوسیله دستور GetDirectories می توان لیست پوشه های داخل یک پوشه را بدست آورد:

var subDirectories = Directory.GetDirectories("D:\\MyFolder");

foreach (var directory in subDirectories)
{
    DirectoryInfo info = new DirectoryInfo(directory);
    Console.WriteLine(info.Parent);
}

در کد بالا، از کلاسی با نام DirectoryInfo استفاده کردیم که می توان بوسیله آن اطلاعاتی در مورد پوشه ها بدست آورد.در صورت مشخص کردن پارامتر دوم، می توان الگوی مورد نظر برای جستجو در میان پوشه ها را مشخص کرد:

var subDirectories = Directory.GetDirectories("D:\\MyFolder","a*");

foreach (var directory in subDirectories)
{
    DirectoryInfo info = new DirectoryInfo(directory);
    Console.WriteLine(info.Parent);
}

برای مثال، کد بالا تنها پوشه هایی را بر میگرداند که نام آن ها با کاراکتر a شروع شود.متدهای دیگری نیز در کلاس Directory وجود دارند، مانند متد Move که برای انتقال یک پوشه و محتویاتش به یک مسیر جدید استفاده می شود. امیدوارم که این مطلب مورد توجه دوستان عزیز قرار گرفته باشد.


حسین احمدی
حسین احمدی

بنیانگذار توسینسو و برنامه نویس و توسعه دهنده ارشد وب

حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ...

نظرات