0

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

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

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

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

طراحان و پياده کنندگان برنامه های وب در زمان پياده سازی اين نوع برنامه ها به مواردی برخورد می نمايند که لازم است به سيستم فايل سرويس دهنده وب  دستيابی داشته و عمليات متفاوتی را در ارتباط با فايل ها و دايرکتوری ها انجام دهند . مثلا" شرکتی که خدمات hosting را انجام می دهد ممکن است قصد طراحی  يک control panel را داشته باشد تا اين امکان را برای مشتريان خود فراهم آورد که با استفاده از يک اينترفيس وب ، اقدام به ويرايش فايل های وب سايت خود نمايند  .
در ASP کلاسيک ، به منظور دستيابی به سيستم فايل سرويس دهنده وب ، از FileSystemObject استفاده می گرديد . در دات نت ، مجموعه ای از کلاس ها به منظور دستيابی به سيستم فايل ، پيش بينی شده است . کلاس های فوق در System.IO قرار داشته و از آنان به منظور انجام عمليات متفاوتی استفاده می گردد :

  • بازيابی و نمايش اطلاعات فايل ها و دايرکتوری ها
  • عمليات بر روی مسيرها ( ترکيب آنان و استخراج عنصر بخصوصی )
  • خواندن و يا نوشتن  داده  در فايل ها و بافرهای حافظه

معرفی کلاس ها
از کلاس های زير به منظور کار با فايل ها ، دايرکتوری ها و stream استفاده می گردد :

  • Directory : متدهای استاتيکی به منظور کار با دايرکتوری ها و درايوهای منطقی را ارائه می نمايد .

  • DirectoryInfo : به منظور کار با يک دايرکتوری خاص و زيردايرکتورهای آن  استفاده می گردد .

  •  File : متدهای استاتيکی به منظور کار با فايل ها را ارائه می نمايد .

  • FileInfo : به منظور کار با يک فايل خاص استفاده می گردد .

  • Stream : کلاس پايه ای که از آن  به منظور خواندن و يا نوشتن در يک backing store  نظير سيستم فايل و يا شبکه ، استفاده می گردد .

  • StreamReader : با تلفيق  يک stream به منظور خواندن کاراکتر از يک backing store استفاده می شود .

  • StreamWriter : با تلفيق يک stream به منظور نوشتن کاراکتر در يک backing store استفاده می شود .

  • TextReader : متدهای لازم به منظور خواندن کاراکتر از هر منبعی ( نظير backing store ، رشته ها و ....) را  ارائه می نمايد .

  • TextWriter : متدهای لازم به منظور نوشتن کاراکتر در هر منبعی (  نظير backing store ، رشته ها و ....) را ارائه می نمايد .

  • BinaryReader : به منظور خواندن نوع های اوليه ای  نظير رشته ها ، اعدادصحيح و Boolean از يک stream استفاده می شود .

  • BinaryWriter :  به منظور نوشتن  نوع های اوليه ای نظير رشته ها ، اعدادصحيح و Boolean در  يک stream استفاده می شود .

  • FileSystem : به منظور خواندن و نوشتن داده در سيستم فايل استفاده می شود .

  • MemoryStream : به منظور خواندن و نوشتن داده در يک بافر حافظه استفاده می شود .

backing store : به منبعی که می توان با استفاده از يک شی Stream داده ئی را در آن نوشت و يا داده ئی را از آن خواند ، اطلاق می گردد . هر backing store يک شی stream را ارائه می نمايد که می توان با استفاده از آن با منبع مورد نظر ارتباط  برقرار نمود.

Directory و DirectoryInfo
برای کار با  دايرکتوری ها  از کلاس های   Directory و DirectoryInfo  استفاده می گردد . کلاس Directory ، تعدادی متد استاتيک را به منظور انجام عمليات دلخواه بر روی دايرکتوری ها ارائه می نمايد. کلاس DirectoryInfo ، مجموعه ای ازمتدهای غير استاتيک به منظور کار بر روی يک دايرکتوری خاص را ارائه می نمايد. از کلاس های فوق به منظور انجام عمليات زير استفاده می شود :

  •  ايجاد و حذف دايرکتوری

  • تشخيص وجود يک دايرکتوری

  • بدست آوردن ليستی از زيرداکتوری ها و يا فايل های موجود  در يک دايرکتوری خاص

  • دريافت اطلاعات در رابطه با دايرکتوری ها نظير تاريخ ايجاد ، صفات  و اعمال تغييرات  لازم در آنان

  • آگاهی از دايرکتوری جاری و تغيير آن ( صرفا" برای کلاس Directory )

  • مشخص نمودن ليستی از درايوهای موجود (  صرفا" برای کلاس Directory )

مثال : استفاده از متد Exists کلاس Directory به منظور تشخيص وجود يک دايرکتوری

تشخيص وجود يک دايرکتوری

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%
      if Directory.Exists("C:\SrcoFolder") then
          Response.Write("دايرکتوری وجود دارد " )
      else
         Response.Write( "دايرکتوری وجود دارند")
end if
%>

متد Exists ، استاتيک است . بنابراين ما مجبور نخواهيم بود که يک متغير و نمونه از کلاس Directory را ايجاد نمائيم .

مثال :  استفاده از متد Exists کلاس DirectoryInfo به منظور تشخيص وجود يک دايرکتوری

تشخيص وجود يک دايرکتوری

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%
Dim dir as DirectoryInfo
dir = new DirectoryInfo("C:\SrcoFolder")

  if dir.Exists = true then
      Response.Write( "دايرکتوری وجود دارد")
  Else
      Response.Write( "دايرکتوری وجود دارند")
end if
%>

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

مثال : نمايش تاريخ  ايجاد يک دايرکتوری

نمايش تاريخ ايجاد يک دايرکتوری

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%
Dim dir as DirectoryInfo
dir = new DirectoryInfo("C:\SrcoFolder")

  if dir.Exists = true then
     Response.Write( "دايرکتوری وجود دارد")
     Response.Write( "<br>Created: " & dir.CreationTime )
  Else
      Response.Write( "دايرکتوری وجود دارند")
end if
%>

File و FileInfo
برای دستيابی به اطلاعات مرتبط با فايل ها  از دو کلاس File و FileInfo استفاده می گردد . در اين رابطه می توان عمليات زير را انجام داد :

  •  ايجاد ، حذف ، باز نمودن ، کپی و انتقال فايل ها ( به منظور نوشتن ، خواندن ، اضافه نمودن و يا بستن فايل استفاده نمی گردد)

  •  بازيابی اطلاعات مرتبط با فايل ها نظير تاريخ ايجاد ، صفات  و اعمال تغييرات  لازم در آنان

کلاس File نظير کلاس Directory  دارای مجموعه ای از متدهای استاتيک به منظور انجام عمليات دلخواه در ارتباط با فايل ها است . کلاس FileInfo دارای مجموعه ای از متدهای غيراستاتيک و خصلت ها به منظور کار با يک فايل خاص است .

مثال :  استفاده از متد Exists کلاس File به منظور تشخيص وجود يک فايل

تشخيص وجود يک فايل

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

<%

   if File.Exists("C:\SrcoFolder\Test.Txt") then
     Response.Write( "فايل وجود دارد")
   else
     Response.Write( "فايل وجود ندارد")
end if

%>

مثال :  استفاده از متد Exists کلاس FileInfo به منظور تشخيص وجود يک فايل

تشخيص وجود يک فايل

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

<%

Dim  myfile as FileInfo
myfile = new FileInfo("
C:\SrcoFolder\Test.Txt")

if myfile.Exists = true then
    Response.Write( "<br>
فايل وجود دارد")
    Response.Write( "<br>Created: " & myfile.CreationTime )
  else
  Response.Write( "<br/>
فايل وجود ندارد")
end if


%>

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

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