0

مديريت فايل ها و دايرکتوری ها در ASP.NET

 
hosseinb68
hosseinb68
کاربر طلایی1
تاریخ عضویت : بهمن 1389 
تعداد پست ها : 1269
محل سکونت : بوشهر

مديريت فايل ها و دايرکتوری ها در ASP.NET ( بخش دوم )
چهارشنبه 8 آذر 1391  9:21 AM

مديريت فايل ها و دايرکتوری ها در ASP.NET ( بخش دوم )

در بخش اول اين مقاله با کلاس های ارائه شده در دات نت به منظور کار با فايل ها و دايرکتوری ها آشنا شديم . در اين بخش با نحوه انجام عمليات متداول در ارتباط با فايل ها و دايرکتوری ها آشنا خواهيم شد.

تغيير و تشخيص دايرکتوری جاری
زمانی که يک صفحه ASP.NET اجراء می گردد ، thread استفاده شده به منظور اجرای کد لازم جهت  توليد صفحه ، به صورت پيش فرض دارای  دايرکتوری جاری Windir%\System32 %  است . در صورت پاس دادن پارامتری نظير نام يک فايل به هر يک از کلاس های System.IO ، در دايرکتوری جاری عمليات مورد نظر انجام خواهد شد ( فرض می شود که فايل در دايرکتوری جاری است ).
بازيابی و تغيير دايرکتوری جاری از جمله عملياتی است که توسط کلاس  Directory انجام می شود . مثال زير نحوه تغيير دايرکتوری جاری با استفاده از  SetCurrentDirectory و بازيابی مجدد آن توسط  GetCurrentDirectory  را نشان می دهد .

تغيير و بازيابی دايرکتوری جاری

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>

<%

Directory.SetCurrentDirectory("C:\Test")
Response.Write( "
مسير جاری : " & _
         Directory.GetCurrentDirectory()  )
 

%>

نمايش ليست درايوهای منظقی موجود
به منظور نمايش ليست درايوهای منطقی موجود از متد GetLogicalDrives  کلاس Directory  استفاده می شود . متد فوق ، آرايه ای از نوع string شامل ليست درايوهای موجود را برمی گرداند .

  ليست درايوهای منطقی

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>

<%
dim Drives() as string
dim Drive as string

Drives = Directory.GetLogicalDrives()

For Each Drive in Drives
      Response.Write(drive)
      Response.Write("<BR>")
Next
 
%>

ايجاد يک دايرکتوری
برای ايجاد يک دايرکتوری از متد  CreateDirectory  کلاس Directory استفاده می شود . کد زير نحوه ايجاد يک ساختار سلسله مراتبی از دايرکتوری های مورد نياز را نشان می دهد .

  ايجاد دايرکتوری 

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>

<%
  Directory.CreateDirctory("C:\Test1\Test2\Test3") 
%>

پس از فراخوانی متد 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 را بر می گرداند .

در بخش سوم به بررسی ساير عمليات متداول در ارتباط با فايل ها و دايرکتوری ها خواهيم پرداخت .

تشکرات از این پست
cryingsphere
دسترسی سریع به انجمن ها