مديريت فايل ها و دايرکتوری ها در ASP.NET ( بخش دوم )
چهارشنبه 8 آذر 1391 9:21 AM
مديريت فايل ها و دايرکتوری ها در ASP.NET ( بخش دوم )
در بخش اول اين مقاله با کلاس های ارائه شده در دات نت به منظور کار با فايل ها و دايرکتوری ها آشنا شديم . در اين بخش با نحوه انجام عمليات متداول در ارتباط با فايل ها و دايرکتوری ها آشنا خواهيم شد.
تغيير و تشخيص دايرکتوری جاری
زمانی که يک صفحه ASP.NET اجراء می گردد ، thread استفاده شده به منظور اجرای کد لازم جهت توليد صفحه ، به صورت پيش فرض دارای دايرکتوری جاری Windir%\System32 % است . در صورت پاس دادن پارامتری نظير نام يک فايل به هر يک از کلاس های System.IO ، در دايرکتوری جاری عمليات مورد نظر انجام خواهد شد ( فرض می شود که فايل در دايرکتوری جاری است ).
بازيابی و تغيير دايرکتوری جاری از جمله عملياتی است که توسط کلاس Directory انجام می شود . مثال زير نحوه تغيير دايرکتوری جاری با استفاده از SetCurrentDirectory و بازيابی مجدد آن توسط GetCurrentDirectory را نشان می دهد .
تغيير و بازيابی دايرکتوری جاری |
<%@ Language="VB" %> |
نمايش ليست درايوهای منظقی موجود
به منظور نمايش ليست درايوهای منطقی موجود از متد GetLogicalDrives کلاس Directory استفاده می شود . متد فوق ، آرايه ای از نوع string شامل ليست درايوهای موجود را برمی گرداند .
ليست درايوهای منطقی |
<%@ Language="VB" %> |
ايجاد يک دايرکتوری
برای ايجاد يک دايرکتوری از متد CreateDirectory کلاس Directory استفاده می شود . کد زير نحوه ايجاد يک ساختار سلسله مراتبی از دايرکتوری های مورد نياز را نشان می دهد .
ايجاد دايرکتوری |
<%@ Language="VB" %> |
پس از فراخوانی متد CreateDirectory ، در ابتدا بررسی لازم در رابطه با وجود يک دايرکتوری با نام Test1 در درايو C انجام می شود ، در صورتی که دايرکتوری فوق وجود نداشته باشد ، آن را ايجاد می نمايد . در ادامه بررسی لازم در رابطه با دايرکتوری Test2 انجام خواهد شد و در صورت عدم وجود يک دايرکتوری با اين نام در دايرکتوری Test1 ، اين دايرکتوری نيز ايجاد می گردد . در نهايت ، متد CreateDirectory بررسی لازم در رابطه با دايرکتوری Test3 را انجام می دهد و در صورتی که اين دايرکتوری در مسير مربوطه نيز وجود نداشته باشد ، آن را ايجاد می نمايد .
نکته : در صورتی که سعی نمائيم يک دايرکتوری را با نام خاصی ايجاد نمائيم که قبلا" ايجاد شده است ، با يک Exception مواجه نخواهيم شد . در صورتی که می خواهيم از وجود يک دايرکتوری قبل از ايجاد آن مطمئن شويم ، می توان از متد Directory.Exists استفاده نمود . در صورتی که هر يک از بخش های آرگومان متد CreateDirectory نادرست باشند، با يک ArgumentException مواجه خواهيم شد .
مثال : نمايش محتويات يک دايرکتوری
کلاس Directory دارای متدهای متعددی به منظور بازيابی محتويات يک دايرکتوری است :
عملکرد | پارامتر | متد |
آرايه ای از نوع String شامل نام هر يک از دايرکتوری های موجود در مسير مشخص شده ، برگردانده می شود . |
Pathname | GetDirectories |
مثال |
||
<%@ Language="VB" %> <%@ Import Namespace="System.IO" %> <% Dim dir As String Dim Subdirs() As String Subdirs=Directory.GetDirectories("C:\") For Each dir in Subdirs Response.Write( dir & "<br />" Next %> |
عملکرد | پارامتر | متد |
آرايه ای از نوع String شامل نام هر يک از دايرکتوری های موجود در مسير مشخص شده و منطبق با الگوی جستجو ، برگردانده می شود. |
Pathname, Search Path |
GetDirectories |
مثال |
||
<%@ Language="VB" %> <%@ Import Namespace="System.IO" %> <% Dim dir As String Dim Subdirs() As String Subdirs=Directory.GetDirectories("C:\" , "Sa*") For Each dir in Subdirs Response.Write( dir & "<br />" Next %> |
عملکرد | پارامتر | متد |
آرايه ای از نوع String شامل نام هر يک از فايل های های موجود در مسير مشخص شده ، برگردانده می شود . |
Pathname |
GetFiles |
مثال |
||
<%@ Language="VB" %> <%@ Import Namespace="System.IO" %> <% Dim f As String Dim files() As String files=Directory.GetFiles("C:\Test" ) For Each f in files Response.Write( f & "<br />" Next %> |
عملکرد | پارامتر | متد |
آرايه ای از نوع String شامل نام هر يک از فايل های های موجود در مسير مشخص شده و منطبق با الگوی جستجو ، برگردانده می شود. |
Pathname, Search Path |
GetFiles |
مثال |
||
<%@ Language="VB" %> <%@ Import Namespace="System.IO" %> <% Dim f As String Dim files() As String files=Directory.GetFiles("C:\Test","sa*" ) For Each f in files Response.Write( f & "<br />" Next %> |
عملکرد | پارامتر | متد |
آرايه ای از نوع String شامل نام هر يک از فايل ها و دايرکتوری های موجود در مسير مشخص شده ، برگردانده می شود . |
Pathname | GetFileSystemEntries |
مثال |
||
<%@ Language="VB" %> <%@ Import Namespace="System.IO" %> <% Dim item As String Dim items() As String items=Directory.GetFileSystemEntries("C:\Test") For Each item in items Response.Write( item & "<br />" Next %> |
عملکرد | پارامتر | متد |
آرايه ای از نوع String شامل نام هر يک از فايل ها و دايرکتوری های موجود در مسير مشخص شده است و منطبق با الگوی جستجو ، برگردانده می شود. |
Pathname, Search Path |
GetFileSystemEntries |
مثال |
||
<%@ Language="VB" %> <%@ Import Namespace="System.IO" %> <% Dim item As String Dim items() As String items=Directory.GetFileSystemEntries("C:\Test","sa*") For Each item in items Response.Write( item & "<br />" Next %> |
کلاس DirectoryInfo نيز دارای متدهای GetDirectories ، GetFiles و GetFileSystemEntries است که دارای عملکردی مشابه متدهای کلاس Directory می باشند . در اين رابطه دو تفاوت عمده وجود دارد :
پارامترPathname به عنوان آرگومان در اختيار متدهای اشاره شده در کلاس DirectoryInfo قرار داده نمی شود. ( کلاس DirectoryInfo دارای آگاهی لازم در ارتباط با مسير می باشد ).
متدهای فوق ،آرايه ای از نوع String را برنمی گردانند . متد GetDirectories آرايه ای از نوع DirectoryInfo ، متد GetFiles آرايه ای از نوع FileInfo و متد GetFileSystemEntries ، آرايه ای از نوع FileSystemInfo را بر می گرداند .
در بخش سوم به بررسی ساير عمليات متداول در ارتباط با فايل ها و دايرکتوری ها خواهيم پرداخت .
مدیر تالار های: