在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物件,以便讀取或追加
< 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")
迄今為止,還沒有新鮮的東西,無非是獲取表單域的值並且賦值到變數。下面出現了有趣的部分 - 寫文件:
回想一下,opentextfile方法返回乙個textstream物件,他是fso模型中的另外乙個物件。textstream物件揭示了操作文件內容的方法,比如寫、讀一行、跳過一行。vb常量vbcrlf產生乙個換行符。
在opentextfile的命令引數中定義了true,這就告訴了系統,假如文件不存在,就建立他。假如文件不存在,並且沒有定義true引數,就會出錯。
現在轉到目錄c: emp,開啟test.txt,您能夠看到如下的資訊:
user's name
user's home page
user's email
< %
' create the fso object
set fso = server.createobject("scripting.filesystemobject")
path = "c: emp est.txt"
' open the file
set file = fso.opentextfile(path, 1) < -- for
reading
接著,分析每一行,並且格式化資料:
do until file.atendofstream
response.write("name: " & file.readline & " ")
response.write("home page: " & file.readline & " ")
response.write("email: " & file.readline & "< p>")
loop
' close and clean up
file.close
set file = nothing
set fso = nothing
%> 這裡僅僅做了乙個很簡單的輸出,但是您能夠根據情況包含**或dhtml表單資訊。
假如已正確地建立並寫入了文件,上面的小小迴圈將合適地列出資料庫中的每乙個人的資訊。readline方法讀取1行內容,直到碰到換行符,隨後的readline呼叫將讀取下一行。atendofstream是textstream物件的屬性,他告訴我們何時碰到文件的尾部。
假設由於某種原因,我們沒有正確地形成文件,假如乙個使用者只有2行資訊而不是3行,那麼就會產生一些錯誤。我們這裡的迴圈取回文件中的下3行資訊,假如沒有3行多的資訊,就將出現如下的錯誤資訊:
server object error 'asp 0177 : 800a003e'
上面的**簡單地初始化變數,search函式執行搜尋功能,描述如下:
function search(objfolder)
dim objsubfolder
'loop through every file in the current
folder
for each objfile in objfolder.files
set objtextstream = objfso.opentextfile(objfile.path,1) < -- for reading
'read the file's contents into a
variable
strfilecontents = objtextstream.readall
'if the search string is in the file, then
write a link
' to the file
if instr(1, strfilecontents, strsearchtext, 1) then
response.write "< a href=""/" & objfile.name & _
""">" & objfile.name & "< /a>< br>"
bolfilefound = true
end if
objtextstream.close
next
'here's the recursion part - for each
' subfolder in this directory, run the search function again
for each objsubfolder in objfolder.subfolders
search objsubfolder
next
end function
ASP中FSO的神奇功能(1)
在asp中,fso的意思是file system object,即檔案系統物件。我們將要操縱的計算機檔案系統,在這裡是指位於web伺服器之上。所以,確認你對此擁有合適的許可權。理想情況下,你可以在自己的機器上建立乙個web伺服器,這樣就能方便地進行測試。如果執行於windows平台,請試一試微軟公司...
ASP中FSO的神奇功能 許可權許可
上面討論了基本知識,然後說說許可權許可的問題。fso以建立它的使用者帳戶許可權執行,換言之,如果有人從internet 上訪問你的頁面,那麼這個internet帳戶就建立fso。如果以administrator的身份登入計算機,並且登入頁面,那麼 administrator帳戶就建立了fso。這是非...
ASP中FSO的神奇功能 許可權許可
上面討論了基本知識,然後說說許可權許可的問題。fso以建立它的使用者帳戶許可權執行,換言之,如果有人從internet上訪問你的頁面,那麼這個internet帳戶就建立fso。如果以administrator的身份登入計算機,並且登入頁面,那麼administrator帳戶就建立了fso。這是非常重...