深入理解ASP中FSO的神奇功能

2022-02-12 00:09:06 字數 4516 閱讀 2995

在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。這是非常重...