ASP.NET的檔案處理
一種程式設計語言,對檔案處理的能力的大小往往也是一種語言功能大小的一種表現。在ASP.NET中,對於檔案的處理主要是通過.Net FrameWork SDK中的一個System.IO的名稱空間來實現了,在System.IO名稱空間中定義了許多關於檔案處理的類(class)、方法和屬性,這些類、方法和屬性使得在很容易在ASP.NET中進行檔案處理。由於在此名稱空間中有定義了許多類、方法和屬性。
檔案基本操作也就是我們平常經常用到的。具體說就是對檔案的讀、寫、拷貝、移動、刪除。下面就這幾個操作來具體介紹一下。
1).程式設計中的主要思路及步驟:
本ASP.NET頁面中採用的程式語言是VB.NET。程式主要功能是開啟指定檔案並把檔案以ASCII碼的形式顯示出來。下面是程式設計中的一些主要步驟:
i>.讀取檔案中用到的對象--StreamReader
在System.IO中定義了一個讀取檔案的對象--StreamReader,本程式就是通過這個對象完成對檔案的讀取。然後以文本形式顯示出來。具體如下:
Dim streamreaderobj As StreamReader
file_name = filename.PostedFile.FileName
' 讀出一個指定檔案,並把他指派給streamreader對象
Do
filecont = streamreaderobj.ReadLine ()
Response.Write( filecont & " <br> " )
Loop Until filecont = ""
' 一行一行讀出檔案內容,知道讀到一行內容為空白字串的時候,才停止
streamreaderobj.Close
' 在讀操作完成以後,關閉StreamReader對象
ii>在程式中所用到的Form的編碼應該是"Multipart/Form-Data",不用他的預設編碼。具體如下:
<form Method = "Post" EncType = "Multipart/Form-Data" runat = "server" >
</form >
2).程式的原始碼:
<% @ Import Namespace = "System.IO" %>
<script language = "vb" runat = "server" >
Sub SendButton_Click ( sender as Object , e as EventArgs )
' 建立一個StreamReader對象
Dim streamreaderobj As StreamReader
Dim file_name as String
' 定義一個變數來儲存從檔案中讀出的內容
Dim filecont As String
streamreaderobj = File.OpenText ( file_name )
panel1.visible = false
' 一行一行讀出檔案內容,知道讀到一行內容為空白字串的時候,才停止
Do
filecont = streamreaderobj.ReadLine ()
' 利用StreamReader對象讀取檔案
Response.Write( filecont & " <br> " )
' 顯示檔案內容
Loop Until filecont = ""
' 在讀操作完成以後,關閉StreamReader對象
streamreaderobj.Close
Response.write ( " <br> 以上就是" & file_name & "檔案的全部內容! " )
End Sub
</script>
<asp:panel id = "panel1" runat = "server" >
<form Method = "Post" EncType = "Multipart/Form-Data" runat = "server" >
<p>歡迎在ASP.NET頁面對檔案進行讀操作</p >
請選擇檔案名稱:<input type = "file" id = "filename" runat = "server" /> <br >
<asp:button id = "Write" Text = "讀檔案" onClick = "SendButton_Click" runat = "server" />
</form >
</asp:panel >
三.ASP.NET頁面進行檔案寫操作:
1).程式設計中的主要思路及步驟:
本ASP.NET頁面中採用的程式語言是VB.NET。程式主要功能是建立一個文本形式的檔案,這個檔案名稱是可以讓使用者自行定義的,然後把使用者填入的內容儲存在此檔案中。下面是程式設計的主要步驟:
i>.讀取檔案中用到的對象--StreamWriter
StreamWriter也是由名稱空間--System.IO中定義的,主要用來寫入檔案內容。本程式中也通過他來完成檔案寫操作的。對檔案的寫操作相比較檔案的讀操作來說較簡單。具體的步驟如下:
Dim strwriterobj As StreamWriter
Dim contxt as String
file_name = filename.text
contxt = body.text
' 其中body.text是要寫入檔案的內容
strwriterobj = File.CreateText ( file_name )
' 建立一個檔案,並把此文字檔作為對象指派給 streamwriter對象
strwriterobj.WriteLine( contxt )
' 把常值內容寫入檔案中
strwriterobj.Close
'關閉對象
ii>.上面主要完成的是對建立一個新檔案,並寫入內容。此時要寫入的檔案如果已經存在,程式就會清空原檔案,然後再寫入新內容。如果你所要完成的工作是對於已經存在的檔案只是在檔案尾部新增內容,對於不存在的檔案才建立和追加內容。用以下語句替換,就可以了。
被替換語句:
strwriterobj = File.CreateText ( file_name )
替換成語句:
strwriterobj = File.AppendText ( file_name )
2).程式原始碼
<% @ Import Namespace = "System.IO" %>
<script language = "vb" runat = "server" >
Sub SendButton_Click ( sender as Object, e as EventArgs )
' 定義一個 streamwriter 對象
Dim strwriterobj As StreamWriter
Dim file_name as String
Dim contxt as String
' 建立一個檔案,並把此文字檔作為對象指派給 streamwriter對象
file_name = filename.text
contxt = body.text
strwriterobj = File.CreateText ( file_name )
' 把常值內容寫入檔案中
strwriterobj.WriteLine( contxt )
'關閉對象
strwriterobj.Close
Response.write ( "成功的進行了檔案寫操作!" )
panel1.visible = false
End Sub
</script>
<asp:panel id="panel1" runat="server" >
<form id="form1" runat="server" >
<p>歡迎在ASP.NET頁面對檔案進行寫操作</p >
請填入檔案名稱:<asp:textbox id = "filename" size = "40" runat = "server" /><br >
請填入寫入內容:<asp:textbox id = "Body" TextMode = "MultiLine" Columns = "40" Rows = "10" runat = "server" /><br >
<asp:button runat = "server" id = "Write" Text = "寫入檔案" onClick = "SendButton_Click" />
</form >
</asp:panel >
四.在ASP.NET頁面中完成檔案的拷貝、移動和刪除操作
在ASP.NET中完成檔案的拷貝、移動和刪除操作就更簡單了。這是因為在名稱空間System.IO中就定義了對檔案進行拷貝和移動的方法。直接調用這些方法就可以完成以上操作。下面給出檔案拷貝、移動和刪除例子。
1).檔案拷貝操作
<% @ Import Namespace = "System.IO" %>
<%
' 下面陳述式完成檔案拷貝工作
File.copy ( "c:\sample.txt" , "c:\temp.txt" )
Response.write ( "檔案的拷貝工作已經成功完成!" )
%>
2).檔案移動操作
<% @ Import Namespace = "System.IO" %>
<%
' 下面陳述式完成檔案移動工作
File.move ( "c:\sample.txt" , "d:\sample.txt" )
Response.write ( "檔案的移動工作已經成功完成!" )
%>
3).檔案刪除操作
<% @ Import Namespace = "System.IO" %>
<%
' 下面陳述式完成檔案刪除工作
File.delete ( "c:\sample.txt" )
Response.write( "檔案的刪除工作已經成功完成!" )
%>
五.總結:
要想靈活的運用ASP.NET,充分感.NET的強大功能,實現我們看似很難完成工作,就必須掌握微軟公司為.Net架構開發的.Net FrameWork SDK。也只有掌握了.Net FrameWork SDK中的內容,你也才可以。