کلاس DirectoryInfo
از کلاس DirectoryInfo برای کار با پوشهها استفاده میشود. امکانات این کلاس شبیه به کلاس Directory است. برای استفاده از متدها و خواص کلاس DirectoryInfo لازم است که از آن نمونه ایجاد کنید.
DirectoryInfo directory = new DirectoryInfo(@"C:Directory");
سازنده کلاس DirectoryInfo آرگومانی از نوع رشته که نشان دهنده مسیر پوشه است را، قبول میکند. این کلاس دارای متدهای متفاوتی برای ایجاد، حذف، انتقال و … پوشهها میباشد. برخی از خواص مفید این کلاس در جدول زیر آمده است:
خاصیت | توضیح | |
Attributes | صفات یک پوشه را بر میگرداند. | |
CreationTime | زمان و تاریخی که یک پوشه ایجاد شده است را بر میگرداند | |
Exists | اگر پوشهای در سیستم فایل موجود باشد مقدار true را بر میگرداند | |
LastAccessTime | تاریخ و رمان آخرین دسترسی به پوشه را بر میگرداند. | |
LastWriteTime | تاریخ و زمان آخرین دستکاری پوشه را نشان میدهد. | |
Name | نام پوشه را بر میگرداند. | |
FullName | مسیر کامل فایل یا پوشه را بر میگرداند. | |
Parent | پوشه والد یک زیر پوشه را بر میگرداند. | |
Root | ریشه یک مسیر را بر میگرداند. |
خاصیت Parent نام پوشه والد یک شیء از DirectoryInfo را بر میگرداند. به عنوان مثال Directory پوشه والد C:DirectorySubdirectory میباشد. خاصیت Root ریشه پوشه DirectoryInfo را برمی گرداند. مثلاً :C ریشه C:/Directory میباشد. برخی از متدهای این کلاس در زیر ذکر شدهاند :
متد | توضیح | |
Create() | یک پوشه ایجاد میکند. | |
CreateSubdirectory() | یک یا چند زیر پوشه در یک مسیر مشخص ایجاد میکند. | |
Delete() | یک پوشه را حذف میکند. | |
EnumerateDirectories() | یک لیست از اشیاء DirectoryInfo را که زیر پوشههای شیء DirectoryInfo هستند بر میگرداند. | |
EnumerateFiles() | یک لیست اشیاء FileInfo که فایلهای واقع در شیء DirectoryInfo هستند را بر میگرداند. | |
GetDirectories() | شبیه EnumerateDirectories است ولی نتیجه را به عنوان یک آرایه بر میگرداند. | |
GetFiles() | شبیه EnumerateFiles است ولی نتیجه را به عنوان یک آرایه بر میگرداند. | |
MoveTo() | یک پوشه را به پوشه دیگر انتقال میدهد. |
ایجاد زیر پوشه
از متد ()CreateSubdirectory برای ایجاد زیر پوشهها استفاده میشود. به مثال زیر توجه کنید :
DirectoryInfo directory = new DirectoryInfo(@"C:Directory"); directory.Create(); //Creates C:Directory directory.CreateSubdirectory("Subdirectory"); //Creates C:DirectorySubdirectory
مسیری که شما به عنوان آرگومان به متد ()CreateSubdirectory ارسال میکنید، یک مسیر نسبی است. بدین معنی که لازم نیست مسیر کامل زیر پوشه را بنویسید.
شمارش فایلها و پوشه
میتوان از متدهای ()EnumerateDirectories() ،EnumerateFiles() ،GetDirectories یا ()GetFiles برای به دست آوردن لیستی از پوشهها و فایلها استفاده نمود. تفاوت بین ()EnumereateDirectories و ()EnumerateFiles در برگشت نتیجه به عنوان یک System.Collections.Generic.IEnumerable<T> است به طوریکه T یا DirectoryInfo است یا FileInfo. متدهای ()GetDirectories و ()GetFiles نتیجه را به عنوان یک آرایه ساده DirectoryInfo یا FileInfo برگشت میدهند. کد زیر لیست فایلهای موجود در یک پوشه را نشان میدهد:
DirectoryInfo directory = new DirectoryInfo(@"C:"); IEnumerable<FileInfo> files = directory.EnumerateFiles(); foreach (FileInfo file in files) { Console.WriteLine(file.Name); }
خروجی نمایش داده نمیشود چون نتیجه بستگی به فایلهایی دارد که در مسیر C:/directory وجود دارند. میتوانید از یکی از سربارگذاری های چهار متد استفاده کنید که یک آرگومان به عنوان رشته قبول میکند. این رشته میتواند یک الگو و یا یک پسوند باشد. به عنوان مثال شما میتوانید لیستی از همه فایلهای با پسوند txt. را جستجو کنید :
IEnumerable<FileInfo> textFiles = directory.EnumerateFiles("*.txt");
کاراکتر * یک کاراکتر عمومی است که نشان دهنده نام فایل است. textFiles شامل لیستی از اشیاء FileInfo است که دارای پسوند txt. میباشند.