تبلیغات
آموزشASP.NET - مدیریت فایل ها و دایرکتوری ها در ASP.NET ( بخش سوم )
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
در این بخش به بررسی سایر عملیات متداول مرتبط با فایل ها و دایرکتوری ها و یک نمونه مثال کاربردی خواهیم پرداخت .

حذف یک دایرکتوری
 برای حذف یک دایرکتوری می توان از متدهای Directory.Delete و یا DirectoryInfo.Delete استفاده نمود. کد زیر نحوه انجام این کار را نشان می دهد :

حذف یک دایرکتوری

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%
Directory.Delete("C:\Test")
Dim dir As DirectoryInfo
dir = New DirectoryInfo("C:\Test")
dir.Delete 

%>

توضیحات
در صورتی که قصد حذف یک دایرکتوری را داشته باشیم که موجود نمی باشد ، با یک خطای  DirectoryNoFound ، مواجه خواهیم شد. اگر قصد حذف یک دایرکتوری را داشته باشیم که در آن فایل و یا دایرکتوری های دیگری موجود می باشد، با یک خطای IOException مواجه خواهیم شد. برای حل این مسئله ، می توان از نسخه overload متد Delete استفاده نمود. در چنین مواردی در زمان استفاده از متد Delete ، می بایست در رابطه با حذف و یا عدم حذف فایل ها و یا دایرکتوری های موجود در یک دایرکتوری  تعیین تکلیف شود.  کد زیر نحوه انجام این کار را نشان می دهد :

حذف یک دایرکتوری با تعیین تکلیف در رابطه با فایل ها و دایرکتوری ها موجود در آن 

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%
Directory.Delete("C:\Test",True)
Dim dir As DirectoryInfo
dir = New DirectoryInfo("C:\Test")
dir.Delete (True)

%>

حذف یک فایل
برای حذف یک فایل می توان از متدهای File.Delete و یا FileInfo.Delete ، استفاده نمود . کد زیر نحوه انجام این کار را نشان می دهد :

حذف یک فایل

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%
File.Delete("C:\Test.txt")
Dim file1 As FileInfo
file1 = New FileInfo("C:\Test.txt")
file1.Delete 

%>

توضیحات
در صورتی که قصد حذف فایلی را داشته باشیم که موجود نمی باشد ، با یک خطاء و یا exception خاصی برخورد نخواهیم کرد، مگر این که بخشی از آدرس مشخص شده در مسیر ( Pathname ) وجود نداشته باشد . در چنین مواردی با خطائی از نوع DirectoryNotFoundException مواجه خواهیم شد .

خصلت ها و صفات فایل ها و دایرکتوری ها
بر روی فایل ها و دایرکتوری ها می توان عملیات مشترک و مشابهی نظیر "حذف " را انجام داد . فایل ها و دایرکتوری ها دارای خصایص مشترک و مشابهی نظیر تاریخ ایجاد ، نام کامل و یا صفات نیز می باشند . کلاس FileSystemInfo دارای اعضائی است که می توان آنان را در ارتباط با فایل ها و یا دایرکتوری ها بخدمت گرفت . کلاس های DirectoryInfo و FileInfo ازکلاس فوق مشتق شده اند .

خصلت های کلاس FileSystemInfo 

توضیحات Read / Write نوع  نام

 صفاتی نظیر Hidden ، archive و Read-only   ، مرتبط با یک فایل را برمی گرداند .

R / W

FileAttributes Attributes

زمان ایجاد فایل و یا دایرکتوری را برمی گرداند

R / W

System.DateTime CreationTime

آخرین زمان مراجعه به فایل و یا دایرکتوری را برمی گرداند

R / W

System.DateTime LastAccessTime

آخرین زمان ویرایش یک فایل و یا دایرکتوری را برمی گرداند

R / W

System.DateTime LastWriteTime

وضعیت موجود بودن یک فایل و یا دایرکتوری را مشخص می نماید.

R

Boolean Exists

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

R

String Extension

 نام فایل و یا دایرکتوری را متناسب با نام دایرکتوری مربوطه بر می گرداند .

R

String Name

نام کامل فایل و یا دایرکتوری را برمی گرداند .

R

String FullName

متدهای کلاس  FileSystemInfo

توضیحات  نام

حذف فایل و یا دایرکتوری

Delete

بهنگام سازی هر نوع اطلاعات cache شده( نظیر تاریخ ایجاد فایل)

Refresh

وضعیت موجود بودن یک فایل و یا دایرکتوری را مشخص می نماید.

Exists

 

مثال : ایجاد یک مرورگر  فایل و دایرکتوری
برای آشنائی با نحوه استفاده ازصفات و برخی متدها و خصلت های کلاس های DirectoryInfo و FileInfo به بررسی یک مثال کاربردی ( ایجاد یک مرورگر فایل ) ، خواهیم پرداخت . برنامه  فوق یک مسیر(PathName ) را از ورودی دریافت و تمامی فایل ها و دایرکتوری ها موجود در آن را نمایش خواهد داد .

مرحله اول : تایپ کد زیر با استفاده از یک ویرایشگر

ایجاد یک مرورگر فایل و دایرکتوری

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

<script runat="server">
Sub Page_Load( sender as object, e as EventArgs)
    if not Request("dir") is nothing then
        DirName.Value = Request("dir")
   end if
End Sub
</script>

<Html dir="rtl">
<font face="Tahoma" size="3">
<h3>مرورگر فایل و دایرکتوری </h3></Font>
</html>

<form runat="server" dir="rtl">
نام دایرکتوری <input type="text" id="DirName" size="20" dir="ltr"
value="c:\program files\internet explorer" runat="server" >
<input type="submit" value="مشاهده ">
</form>

<%
dim dir as DirectoryInfo
dim anchor as string

' Get the information about the selected directory

dir = new DirectoryInfo( DirName.Value )

Response.Write("<h4>دایرکتوری های موجود در " & DirName.Value & "</h4>")

Response.Write("<table>")
Response.Write("<tr bgcolor=""#336699"" style=""border-collapse: collapse; color: #ffffff"">")
Response.Write("<td>")
Response.Write( "نام" )
Response.Write("<td>")
Response.Write( "تاریخ آخرین تغییرات" )
Response.Write("</tr></font>")

dim SubDir as DirectoryInfo

for each SubDir in dir.GetDirectories()
  anchor = "<a href='" & "FileBrowser.aspx?dir=" & SubDir.FullName & "'>" + SubDir.Name & "</a>"
  Response.Write("<tr dir=""ltr"">")
  Response.Write("<td>" & anchor & "</td>" )
  Response.Write("<td>" & SubDir.LastWriteTime & "</td>" )
  Response.Write("</tr>")
next

Response.Write("</table>")

if ( not dir.Parent is nothing ) then
anchor = "<a href='" & "FileBrowser.aspx?dir=" & dir.Parent.FullName & "'>" & dir.Parent.FullName & "</a>"
Response.Write("<p>دایرکتوری ریشه " & anchor )
end if

Response.Write("<h3>فایل های موجود در " & DirName.Value & "</h3>")

Response.Write("<table>")
Response.Write("<tr bgcolor=""#336699"" style=""border-collapse: collapse; color: #ffffff"">")
Response.Write("<td>نام فایل</td>" )
Response.Write("<td>تاریخ آخرین تغییرات</td>" )
Response.Write("<td>ظرفیت</td>" )
Response.Write("<td>وضعیت فایل</td>" )
Response.Write("</tr>")

dim f as FileInfo
dim mystr As String

for each f in dir.GetFiles()
   Response.Write("<tr dir=""ltr"">")
   Response.Write("<td>" & f.Name )
   Response.Write("<td>" & f.LastWriteTime & "</td>")
   Response.Write("<td>" & f.Length.ToString() & "</td>" )
   if ( (f.Attributes and FileAttributes.ReadOnly) <> 0 ) then
      mystr ="فقط خواندنی"
   end if
  if ( (f.Attributes and FileAttributes.Hidden) <> 0 ) then
      mystr ="مخفی"
   end if
   if ( (f.Attributes and FileAttributes.System) <> 0 ) then
       mystr ="سیستم"
   end if
   if ( (f.Attributes and FileAttributes.Archive) <> 0 ) then
       mystr ="آرشیو"
   end if
   Response.Write( "<td>" & mystr & "</td>" )
   Response.Write("</tr>")
next
Response.Write("</table>")
%>

مرحله دوم :  پس از ذخیره کد فوق در فایلی با نام FileBrowser.aspx و مشاهده آن در مرورگر ، خروجی زیر را خواهیم داشت : 





نوع مطلب :
برچسب ها :
لینک های مرتبط :


دوشنبه 27 شهریور 1396 09:41 ق.ظ
Thanks for sharing your thoughts on مدیریت. Regards
چهارشنبه 15 شهریور 1396 07:37 ق.ظ
you are actually a just right webmaster. The site loading speed is incredible.
It seems that you are doing any unique trick. Also,
The contents are masterpiece. you've performed a great job on this topic!
دوشنبه 30 مرداد 1396 09:45 ق.ظ
Wow, superb blog layout! How long have you been blogging for?
you made blogging look easy. The overall look of your website is fantastic, let alone the content!
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :