عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
مديريت فايل ها و دايرکتوری ها در ASP.NET ( بخش سوم ) |
مديريت وب |
13747 |
67 |
4.7 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
مديريت فايل ها و دايرکتوری ها در ASP.NET ( بخش دوم )
مديريت فايل ها و دايرکتوری ها در
ASP.NET ( بخش
سوم )
آنچه
تاکنون گفته شده است :
|
|
در اين بخش به بررسی ساير عمليات متداول مرتبط
با فايل ها و دايرکتوری ها و يک نمونه مثال کاربردی خواهيم پرداخت .
حذف يک دايرکتوری
برای حذف يک دايرکتوری می توان از متدهای 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 و
مشاهده آن در مرورگر
، خروجی زير را خواهيم داشت :
