在ASP中,FSO的意思是File System Object,即檔案系統對象。
我們將要操縱的電腦檔案系統,在這裡是指位於web伺服器之上。所以,確認你對此擁有合適的許可權。理想情況下,你可以在自己的機器上建立一個web伺服器,這樣就能方便地進行測試。如果運行於Windows平台,請試一試微軟公司的免費個人Web伺服器PWS。
FSO 模型對象
Drive Object:磁碟機對象 供存取磁碟或者網路磁碟機
FileSystemObject Object:檔案系統對象 供存取電腦的檔案系統
Folder Object:檔案夾對象 供存取檔案夾的所有屬性
TextStream Object:文字資料流對象 供存取檔案內容
你可以使用上面的對象做電腦上的任何事情,也包括破壞活動 ;-( 所以,請小心使用FSO。在web環境中,儲存資訊是非常重要的,比如使用者資訊,記錄檔,等等。FSO提供了一個強大且簡單的方法高效率地儲存資料。在這篇文章裡面,著重討論FileSystemObject和TextStream對象。
FSO由微軟公司提供支援,對於非Windows系統,大概不能再使用ASP。
怎麼樣使用FSO?
為了使用FSO來執行所有的工作,首先要建立對象,代碼就象下面這樣:
< % Set fso = Server.CreateObject("Scripting.FileSystemObject")
% >
這樣就建立了FSO並且賦予變數fso,接著就可以使用熟悉的object.method文法來執行檔案系統的操作〔查看Visual Basic文檔,擷取更多的關於對象和對象嚮導編程的知識〕。在這裡,我們可以使用fso.method 或者 fso.property,這些將在下面的例子中看到。
FSO模型位於由微軟提供的指令碼已耗用時間DLL檔案中,它是scrrun.dll。你可以在任何應用程式中引用這個DLL檔案,比如MS Access,Word。 就是說,並非僅僅限制在ASP中應用它。
這裡有一個簡要的FSO方法列表:
| FSO方法 |
|
| CopyFile |
拷貝一個或者多個檔案到新路徑 |
| CreateTextFile |
建立檔案並且返回一個TextStream對象 |
| DeleteFile |
刪除一個檔案 |
| OpenTextFile |
開啟檔案並且返回TextStream對象,以便讀取或者追加 |
如果想瞭解完整的FSO方法與屬性,請查閱微軟MSDN。下面來看幾個例子。
假設你想建立一個簡單的留言簿,你可以建立一個資料庫,在其中儲存使用者的資訊。然而,如果並不需要資料庫的強大功能,使用FSO來儲存資訊將節省你的時間和金錢。並且,一些ISP也許限制了web上的資料庫應用。
假設你在一個表單中收集了一些使用者資訊,這裡是一個簡單表單HTML代碼:
< html>
< body>
< form action="formhandler.asp" method="post">
< input type="text" size="10" name="username">
< input type="text" size="10" name="homepage">
< input type="text" size="10" name="Email">
< /form>
< /body>
< /html>
再看看formhandler.asp中處理表單的代碼:
< %
' Get form info
strName = Request.Form("username")
strHomePage = Request.Form("homepage")
strEmail = Request.Form("Email")
' create the fso object
Set fso = Server.CreateObject("Scripting.FileSystemObject")
迄今為止,還沒有新鮮的東西,無非是擷取表單域的值並且賦值到變數。下面出現了有趣的部分 - 寫檔案:
path = "c: emp est.txt"
ForReading = 1, ForWriting = 2, ForAppending = 3
' open the file
set file = fso.opentextfile(path, ForAppending, TRUE)
' write the info to the file
file.write(strName) & vbcrlf
file.write(strHomePage) & vbcrlf
file.write(strEmail) & vbcrlf
' close and clean up
file.close
set file = nothing
set fso = nothing