در اين بخش به بررسی ساير عمليات متداول مرتبط با فايل ها و دايرکتوری ها و يک نمونه مثال کاربردی خواهيم پرداخت .
حذف يک دايرکتوری
برای حذف يک دايرکتوری می توان از متدهای 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 و مشاهده آن در مرورگر ، خروجی زير را خواهيم داشت :

+ نوشته شده توسط امین حاجی علیزاده در یکشنبه یکم بهمن ۱۳۸۵ و ساعت
12:15 |