版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第七章 Server對(duì)象與服務(wù)器端文件訪問(wèn)7.1 Server對(duì)象屬性及方法Server對(duì)象是專門為處理服務(wù)器上的事物而設(shè)計(jì)的內(nèi)置對(duì)象,特別是與服務(wù)器的環(huán)境和處理活動(dòng)有關(guān)的任務(wù)。有了sever對(duì)象,就可以在服務(wù)器上啟動(dòng)ActiveX控件。事實(shí)上,當(dāng)你用 ASP 編寫服務(wù)器端應(yīng)用程序時(shí),必須依靠 ActiveX 組件來(lái)強(qiáng)大 Web 應(yīng)用程序的功能,譬如:你需要連接數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)進(jìn)行在線操作或者對(duì) WEB 服務(wù)器上的文件系統(tǒng)進(jìn)行操作,亦或你需要一個(gè) WEB 廣告交換程序,所有這一切你都必須通過(guò)調(diào)用 ASP 內(nèi)建的 ActiveX 組件或自己編寫所需的組件來(lái)完成。其實(shí) ActiveX 組件是一個(gè)存
2、在于 WEB 服務(wù)器上的文件,該文件包含執(zhí)行某項(xiàng)或一組任務(wù)的代碼,組件可以執(zhí)行公用任務(wù),這樣就不必自己去創(chuàng)建執(zhí)行這些任務(wù)的代碼。當(dāng)你在 WEB 服務(wù)器上安裝完 ASP 環(huán)境后,就可以直接使用它自帶的幾個(gè)常用組件,如 Database Access 組件。當(dāng)然你也可以從第三方開發(fā)者處獲得可選的組件 , 也可以編寫自己的組件??梢允褂萌魏沃С纸M件對(duì)象模型(COM)的語(yǔ)言來(lái)編寫組件,如, C、 C+、 Java 或 Visual Basic。ActiveX 是 Microsoft對(duì) INTERNET 上使用 OLE/COM 作為基礎(chǔ)技術(shù)的規(guī)格定義, ActiveX是Microsoft提出的一組使用C
3、OM(Component Object Model,部件對(duì)象模型)使得軟件部件在網(wǎng)絡(luò)環(huán)境中進(jìn)行交互的技術(shù)集。它與具體的編程語(yǔ)言無(wú)關(guān)。作為針對(duì)Internet應(yīng)用開發(fā)的技術(shù),ActiveX被廣泛應(yīng)用于WEB服務(wù)器以及客戶端的各個(gè)方面。同時(shí),ActiveX技術(shù)也被用于方便地創(chuàng)建普通的桌面應(yīng)用程序??梢允褂肰B、VC等編程工具開發(fā)該控件。要使用Active控件必須先注冊(cè)才能使用(已注冊(cè)的組件,可以在注冊(cè)表的HKEYCLASSESROOT中找到)。具體使用組件時(shí),首先要?jiǎng)?chuàng)建對(duì)象的實(shí)例并將這個(gè)新的實(shí)例分配變量名。使用 ASP 的Server.CreateObject 方法可以創(chuàng)建對(duì)象的實(shí)例。7.1.1
4、Server對(duì)象的屬性Server對(duì)象的屬性為:ScriptTimeOut.通過(guò)設(shè)置該屬性值可以強(qiáng)制規(guī)定腳本的最長(zhǎng)執(zhí)行時(shí)間(單位:秒)。ScriptTimeout默認(rèn)值為90秒。設(shè)置該屬性值的方法:例如Server.ScriptTimeout=120思考題:如何驗(yàn)證ScriptTimeout的默認(rèn)值為90秒呢?例: 應(yīng)用ScriptTimeout防止腳本出現(xiàn)死循環(huán)。<html><head> <title>ScriptTimeout屬性用法示例</title></head><body><% Server.ScriptT
5、imeout=1 '設(shè)置腳本文件最長(zhǎng)執(zhí)行時(shí)間為1秒 Dim i i=1 Do While i>0 '死循環(huán)程序i=i+1 Loop%></body></html>7.1.2 Server的方法 Server的方法主要有:Ø CreateObject(component):建立組件實(shí)例Ø Execute(path):調(diào)用PATH指定的程序Ø GetlastError():返回一個(gè)ASPError對(duì)象的實(shí)例,該實(shí)例描述最近發(fā)生的錯(cuò)誤Ø HTMLEncode(string):將String進(jìn)行編碼,使它不會(huì)被
6、解釋為HTML語(yǔ)法Ø URLEncode(string):將String進(jìn)行編碼,以放入 QueryString返回服務(wù)器Ø MapPath(path):將Path指定的虛擬路徑轉(zhuǎn)換為實(shí)際路徑Ø Transfer(path):將控制權(quán)轉(zhuǎn)移到Path指定的ASP程序 u Server.Execute方法格式:Server.Execute(path)功能:該方法是IIS5.0新增的功能,用途類似程序語(yǔ)言中的函數(shù)調(diào)用,也就是說(shuō),你可以在ASP程序中使用Server.Execute(path)方法調(diào)用path指定的ASP程序,待彼此調(diào)用的程序執(zhí)行完畢之后再返回原來(lái)的程序,
7、繼續(xù)執(zhí)行接下來(lái)的指令。舉例:Server.Execute方法使用<HTML><BODY><P><% Response.Write "調(diào)用Execute方法之前" %></P><% Server.Execute("page_2.asp") %> '執(zhí)行 page_2.asp 后會(huì)再返回<P><% Response.Write "調(diào)用Execute方法之后" %></P></BODY></HTML>&
8、lt;page_1.asp><HTML><BODY><P><% Response.Write “這是page_2.asp的執(zhí)行結(jié)果" %></P></BODY></HTML> <page_2.asp>u Server.Transfer方法格式:Server.Transfer(path)功能:該方法也是IIS5.0新增的功能,用于將目前ASP程序的控制權(quán)轉(zhuǎn)移到path指定的ASP程序,即使轉(zhuǎn)移之后的程序已經(jīng)執(zhí)行完畢,控制權(quán)不會(huì)返回原來(lái)的程序。舉例:Server.Transfer方法使用
9、<HTML><BODY><P><% Response.Write "調(diào)用Transfer方法之前" %></P><% Server.Transfer("page_2.asp") %> '將控制權(quán)轉(zhuǎn)移至 page_2.asp 后便不再返回<P><% Response.Write "調(diào)用Transfer方法之后" %></P></BODY></HTML><page_3.asp>注意:Ser
10、ver.Transfer、Server.Execute和Redirect三者的區(qū)別:(1)Transfer與Execute基本相似,唯一區(qū)別是Transfer方法執(zhí)行完新網(wǎng)頁(yè)后并不回到原來(lái)網(wǎng)頁(yè)。(2)Redirect與Transfer有點(diǎn)相似,都有頁(yè)面導(dǎo)向的功能,所不同的是,使用Transfer能夠保留原來(lái)所有內(nèi)置對(duì)象的值,而Redirect卻做不到。思考題:編程驗(yàn)證Redirect與Transfer對(duì)內(nèi)置對(duì)象的值的影響有何不同。u Server.HTMLEncode和Server.URLEncode方法Server對(duì)象提供的Server.HTMLEncode和Server.URLEncode
11、兩個(gè)方法可以進(jìn)行字符串編碼。1Server.HTMLEncode編碼方式 該編碼方式可以將String進(jìn)行編碼,使字符串不會(huì)被解釋為HTML語(yǔ)法。其格式為:Response.Write(Server.HTMLEncode(“段落標(biāo)記:<P>”)例如,請(qǐng)分析下列程序的運(yùn)行結(jié)果<%Response.write("這是對(duì)HTMLEncode方法的測(cè)試。<br>這里應(yīng)該不會(huì)另起一行。")%><%Response.write Server.HTMLEncode("這是對(duì) HTMLEncode 方法的測(cè)試。<br> 這里應(yīng)
12、該不會(huì)另起一行。")%>2Server.URLEncode編碼方式 該方式可以將Srting進(jìn)行編碼,以放入Querystring返回服務(wù)器。服務(wù)器端用Request.Querystring(“keyname”)獲取即可。例如,分析下列程序找出錯(cuò)誤原因。<% language=vbscript %><html> <Head> <title>URLENCODE舉例</title> </Head> <body> <a href="urlsample.asp?name=<%=se
13、rver.urlencode("李 四")%>">傳name過(guò)去 </a> </body></html> <urlsam.asp><% language=vbscript %><% name=request.form("name")%><html> <Head> <title>注意觀察</title> </Head> <body> <%=name&"你好"
14、%> </body></html><urlsample.asp>u Server.MapPath方法格式:Server.MapPath(path)功能:該方法用于將path指定的虛擬路徑轉(zhuǎn)換為實(shí)際路徑。舉例:Server.MapPath方法使用<HTML><BODY><% Response.Write "父目錄為" & Server.MapPath("./") %><BR><% Response.Write "現(xiàn)在目錄為" &
15、; Server.MapPath("./") %><BR><% Response.Write "根目錄為" & Server.MapPath("/") %><BR><% Response.Write "網(wǎng)頁(yè)的實(shí)際路徑為" & Server.MapPath("path.asp") %><BR></BODY></HTML>u Server.CreateObject方法格式:Server.Crea
16、teObject(component)功能:這是Server對(duì)象最重要的一個(gè)方法。它用于創(chuàng)建已經(jīng)注冊(cè)到服務(wù)器(從注冊(cè)表里能找到已經(jīng)注冊(cè)的組件)上的ActiveX組件的實(shí)例。有了它,我們就可以使用ActiveX組件輕松的擴(kuò)展ActiveX的能力,使設(shè)計(jì)更加多元化。舉例:下面就聲明了FileSystemObject的一個(gè)實(shí)例:Dim objFSO '聲明objFSO 的變量,以存放對(duì)象實(shí)例Set objFSO = Server.CreateObject("Scripting.FileSystemObject")說(shuō)明:1Set 是VBScript關(guān)鍵字,用來(lái)建立對(duì)象實(shí)例,
17、objFSO是這個(gè)對(duì)象的名稱;Scripting.FileSystemObject是FileSystem組件在服務(wù)器注冊(cè)時(shí)的ID標(biāo)識(shí)。2服務(wù)器組件不能直接使用,必須先用Server.CreateObject建立一個(gè)組件的對(duì)象實(shí)例,然后才能通過(guò)次對(duì)象實(shí)例訪問(wèn)其集合、方法和屬性。7.2 ASP內(nèi)置組件本節(jié)主要介紹如下幾個(gè)ASP內(nèi)置組件:Ø FileSystemObject組件:主要負(fù)責(zé)對(duì)服務(wù)器斷文件或文件夾的相關(guān)操作。Ø Browser Capabilities組件:獲取瀏覽器信息。Ø Content Linking組件:用于建立網(wǎng)絡(luò)導(dǎo)航,這在建立大型網(wǎng)站非常有用。&
18、#216; Dictionary組件:功能類似于數(shù)據(jù)庫(kù)操作,所有操作在內(nèi)存中完成,不需要存取磁盤上的文件,適合保存少量的數(shù)據(jù)。Ø Ad Rotator組件:廣告輪顯組件。用于制作動(dòng)態(tài)交替變換的廣告Web頁(yè)面。7.2.1 FileSystemObject組件FSO(FileSystemObject)組件模式包含在 Scripting 類型庫(kù)中,該庫(kù)位于 Scrrun.dll 文件中。因而,要使用 FSO 對(duì)象模式,必須把 Scrrun.dll 放在 Web 服務(wù)器的適當(dāng)系統(tǒng)目錄中。一、檢查指定的磁盤、文件夾或文件是否存在 在進(jìn)行磁盤、文件夾或文件的讀寫之前,我們都必須先確定磁盤、文件夾
19、或文件是存在的,否則將產(chǎn)生錯(cuò)誤信息。我們可以分別使用FilesystemObject組件的DriveExistes(path)、FileExists(path)及FolderExists(path)方法來(lái)檢查磁盤、文件夾或文件是否存在,例如以下程序:01:<HTML><BODY>02: <%03: Dim objFSO '聲明一個(gè)名稱為 objFSO 的變量以存放對(duì)象實(shí)例04: Set objFSO = Server.CreateObject("Scripting.FileSystemObject")05: If objFSO.Driv
20、eExists("C:") Then06: Response.Write "C:磁盤是存在的" & "<BR>"07: Else將虛擬路徑轉(zhuǎn)換為實(shí)際路徑08: Response.Write "C:磁盤是不存在的" & "<BR>"09: End If10: If objFSO.FolderExists(Server.MapPath("Ch07") Then11: Response.Write "Ch07文件夾是存在的"
21、; & "<BR>"12: Else13: Response.Write "Ch07文件夾是不存在的" & "<BR>"將虛擬路徑轉(zhuǎn)換為實(shí)際路徑14: End If15: If objFSO.FileExists(Server.MapPath("CheckExist.asp") Then16: Response.Write "CheckExist.asp文件是存在的" & "<BR>"17: Else18: Resp
22、onse.Write "CheckExist.asp文件是不存在的" & "<BR>"19: End If20: Set objFSO = Nothing '釋放 FileSystemObject 對(duì)象實(shí)例21: %>22:</BODY></HTML>注意:1使用FolderExists方法和FileExists方法時(shí),要求參數(shù)必須是實(shí)際路徑,所以,在程序中,我們總要使用Server.MapPath方法先將虛擬路徑先轉(zhuǎn)換為實(shí)際路徑。2程序結(jié)束前,我們使用Set objFSO = Nothing 釋
23、放我們?cè)?jīng)在程序中建立的對(duì)象。二、 對(duì)文件夾的操作1建立文件夾格式:objFSO.CreateFolder (FolderName)用途:FileSystemObject對(duì)象的CreateFolder方法用于建立一個(gè)FolderName文件夾,而且參數(shù)FolderName必須使用實(shí)際路徑。舉例:在Ch07文件夾內(nèi)建立一個(gè)名稱為NewFolder的文件夾。<HTML> <BODY> <% Dim objFSO Set objFSO = Server.CreateObject("Scripting.FileSystemObject") objFSO
24、.CreateFolder (Server.MapPath("ch07NewFolder") Response.Write "新文件夾的實(shí)際路徑為" & Server.MapPath("ch07NewFolder") Set objFSO = Nothing %> </BODY></HTML>2移動(dòng)、重新命名文件夾格式:objFSO. MoveFolder Source,Destination用途: FileSystemObject對(duì)象的MoveFolder方法用于將Source指定的文件夾移動(dòng)到
25、Destination,而且參數(shù)Source和Destination必須使用實(shí)際路徑。舉例:將Web主目錄的Folder1文件夾移動(dòng)到Ch07文件夾內(nèi),而且移動(dòng)之后的文件夾名稱改為Folder2 。<HTML> <BODY> <% Dim objFSO Set objFSO = Server.CreateObject("Scripting.FileSystemObject") If objFSO. FolderExists(Server.MapPath("Folder1") Then objFSO.MoveFolder Se
26、rver.MapPath("Folder1"), Server.MapPath("Ch07Folder2") Else Response.Write "Folder1文件夾不存在無(wú)法進(jìn)行移動(dòng)" End If Set objFSO = Nothing %> </BODY></HTML>3刪除文件夾格式:objFSO.DeleteFolder path,force用途: FileSystemObject對(duì)象的DeleteFolder方法用于刪除path指定的文件夾,force為布爾值,默認(rèn)值為false,不刪
27、除只讀文件夾,若要采用默認(rèn)值,可省略不寫,若要?jiǎng)h除只讀文件夾,force的值要設(shè)置為true,參數(shù)path必須使用實(shí)際路徑。舉例:將Web主目錄的MyFolder文件夾刪除。<HTML> <BODY> <% Dim objFSO Set objFSO = Server.CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(Server.MapPath("MyFolder") Then objFSO.DeleteFolder Server.MapPa
28、th("MyFolder") Else Response.Write "MyFolder文件夾不存在無(wú)法進(jìn)行刪除" End If Set objFSO = Nothing %> </BODY></HTML>4復(fù)制文件夾Ø 使用FileSystemObject的CopyFolder方法完成文件夾復(fù)制格式:objFSO.CopyFolder Source,Destination功能: FileSystemObject對(duì)象的CopyFolder方法用于將Source指定的文件夾復(fù)制到Destination,而且參數(shù)Sou
29、rce和Destination必須使用實(shí)際路徑。舉例:將Web主目錄的Folder1文件夾復(fù)制到Ch07文件夾內(nèi),而且移動(dòng)之后的文件夾名稱改為Folder2。<HTML> <BODY> <% Dim objFSO Set objFSO = Server.CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(Server.MapPath("Folder1") Then objFSO.CopyFolder Server.MapPath("Fo
30、lder1"),Server.MapPath("Ch07Folder2") Else Response.Write "Folder1文件夾不存在無(wú)法進(jìn)行復(fù)制" End If Set objFSO = Nothing %> </BODY></HTML>Ø 使用Folder對(duì)象的Copy方法完成文件夾的復(fù)制格式:objFolder.Copy destination,overwrite功能:Folder對(duì)象的Copy方法用于將文件夾復(fù)制到Destination,若Destination已有同名文件夾,且Over
31、write的值為True,表示將其覆蓋,否則不覆蓋。舉例:對(duì)上例進(jìn)行修改。<HTML> <BODY> <% Dim objFSO, objFolder Set objFSO = Server.CreateObject("Scripting.FileSystemObject") If objFSO.FolderExists(Server.MapPath("Folder1") Then Set objFolder = objFSO.GetFolder(Server.MapPath("Folder1") obj
32、Folder.Copy Server.MapPath("Ch07Folder2"),true Else Response.Write "Folder1文件夾不存在無(wú)法進(jìn)行復(fù)制" End If Set objFolder = Nothing Set objFSO = Nothing %> </BODY></HTML>注意:在本例中,我們使用FilesystemObject的GetFolder方法取得Folder1文件夾的Folder對(duì)象實(shí)例,類似的還有GetFile、GetDrive方法,使用方法類似。問(wèn)題:對(duì)象釋放的順序是什
33、么?三、取得文件夾的父文件夾信息我們可以使用FilesystemObject的GetParentFolderName、 GetSpecialFolder方法來(lái)取得文件夾的父文件夾路徑和WindowsFolder、SystemFolder、TemporaryFolder等特殊文件夾的路徑,但如果要取得文件夾的大小、屬性、類型和日期等信息,就必須使用Folder對(duì)象提供的屬性。我們一起來(lái)看下面的例子。01:<HTML><BODY>02: <%03: Dim objFSO, objFolder04: Set objFSO = Server.CreateObject(&q
34、uot;Scripting.FileSystemObject")05: If objFSO.FolderExists(Server.MapPath("Ch07") Then06: Response.Write "父文件夾的路徑:" & _07: objFSO.GetParentFolderName(Server.MapPath("Ch07") & "<BR>"08: Response.Write "特殊文件夾WindowsFolder的路徑:" &
35、_09: objFSO.GetSpecialFolder(WindowsFolder) & "<BR>"10: Set objFolder = objFSO.GetFolder(Server.MapPath("Ch07")11: Response.Write "文件夾的名稱:" & objFolder.Name & "<BR>"12: Response.Write "文件夾的路徑:" & objFolder.Path & "
36、;<BR>"13: Response.Write "文件夾的建立日期:" & objFolder.DateCreated & "<BR>"14: Else15: Response.Write "Ch07文件夾不存在無(wú)法顯示相關(guān)信息"16: End If17: Set objFolder = Nothing18: Set objFSO = Nothing19: %>20:</BODY></HTML>本例實(shí)現(xiàn)對(duì)文件夾相關(guān)信息的查詢,主要使用FileSystem
37、Object對(duì)象的Getparentfoldername方法、Folder對(duì)象的相關(guān)屬性。四、列出文件夾內(nèi)的所有內(nèi)容Folder對(duì)象提供的屬性除了可以取得文件夾的大小、類型、日期、名稱和路徑等信息之外,還可以取得文件夾內(nèi)的所有文件或子文件夾。我們一起來(lái)看下面的例子。01:<HTML>02: <BODY>03: <%04: Dim objFSO, objFolder, objFile05: Set objFSO = Server.CreateObject("Scripting.FileSystemObject")06: If objFSO.Fol
38、derExists(Server.MapPath("Ch07") Then07: Set objFolder = objFSO.GetFolder(Server.MapPath("Ch07")08: For Each objFile in objFolder.Files09: Response.Write objFile.Name & "<BR>"10: Next11: Else12: Response.Write "Ch07文件夾不存在無(wú)法顯示內(nèi)含的文件"13: End If14: Set o
39、bjFolder = Nothing15: Set objFSO = Nothing16: %>17: </BODY>18:</HTML>本例實(shí)現(xiàn)文件夾下文件信息查詢。實(shí)現(xiàn)的關(guān)鍵是使用Folder對(duì)象的Files集合。五、文件的建立、移動(dòng)、重命名、刪除和復(fù)制1建立新文件格式:objFSO.CreateTextFile(Filename,Overwrite,Unicode)功能:FileSystemObject對(duì)象的CreateTextFile方法用于建立一個(gè)文本文件,并返回一個(gè)TextStream對(duì)象實(shí)例;Filename為文本文件的名稱(必須使用實(shí)際路徑);Ov
40、erwrite和 Unicode都為布爾值,默認(rèn)值都為false,前者表示是否覆蓋同名文件,后者為true表示為Unicode文本文件,為false表示為ASCII文本文件。舉例:本例實(shí)現(xiàn)在ch07下建立ASCII文本文件NewFile.asp。<HTML> <BODY> <% Dim objFSO Set objFSO = Server.CreateObject("Scripting.FileSystemObject") ObjFSO.CreateTextFile(Server.MapPath("Ch07NewFile.asp&qu
41、ot;) Set objFSO = Nothing %> </BODY></HTML>2移動(dòng)、重新命名文件格式:objFSO.MoveFile Source,Destination功能: FileSystemObject對(duì)象的MoveFile方法用于將Source指定的文件移動(dòng)到Destination,而且參數(shù)Source和Destination必須使用實(shí)際路徑。舉例:請(qǐng)說(shuō)明下列程序的功能:<HTML> <BODY> <% Dim objFSO Set objFSO = Server.CreateObject("Script
42、ing.FileSystemObject") If objFSO.FileExists(Server.MapPath("Ch07NewFile.asp") Then objFSO.MoveFile Server.MapPath("Ch07NewFile.asp"), Server.MapPath("Ch05NewFile1.asp") Else Response.Write "NewFile.asp文件不存在無(wú)法進(jìn)行移動(dòng)" End If Set objFSO = Nothing %> </BO
43、DY></HTML>3刪除文件格式: objFSO.DeleteFile path,force用途: FileSystemObject對(duì)象的DeleteFile方法用于刪除path指定的文件,force為布爾值,默認(rèn)值為false,不刪除只讀文件,若要采用默認(rèn)值,可省略不寫,若要?jiǎng)h除只讀文件夾,force的值要設(shè)置為true,參數(shù)path必須使用實(shí)際路徑。舉例: 將Ch05文件夾內(nèi)的NewFile.asp文件刪除。<HTML> <BODY> <% Dim objFSO Set objFSO = Server.CreateObject("
44、Scripting.FileSystemObject") If objFSO.FileExists(Server.MapPath("Ch05NewFile.asp") Then objFSO.DeleteFile Server.MapPath("Ch05NewFile.asp") Else Response.Write "NewFile.asp文件不存在無(wú)法進(jìn)行刪除" End If Set objFSO = Nothing %> </BODY></HTML>4復(fù)制文件格式:objFSO.Copy
45、File Source,Destination,Overwrite功能: FileSystemObject對(duì)象的CopyFile方法用于將Source指定的文件復(fù)制到Destination,Overwrite為布爾值,默認(rèn)值都為false,前者表示是否覆蓋同名文件。舉例:將Web主目錄的File1.asp文件復(fù)制到Ch07文件夾內(nèi),而且移動(dòng)之后的文件夾名稱改為File2.asp。<HTML> <BODY> <% Dim objFSO Set objFSO = Server.CreateObject("Scripting.FileSystemObject&
46、quot;) If objFSO.FileExists(Server.MapPath("File1.asp") Then objFSO.CopyFile Server.MapPath("File1.asp"), Server.MapPath("Ch07File1.asp") Else Response.Write "File1.asp文件不存在無(wú)法進(jìn)行復(fù)制" End If Set objFSO = Nothing %> </BODY></HTML>5獲取文件信息 本例中我們先獲取Fil
47、e對(duì)象,然后利用該對(duì)象的相關(guān)屬性完成對(duì)文件信息的獲取。<HTML> <BODY> <% Dim objFSO, objFile Set objFSO = Server.CreateObject("Scripting.FileSystemObject") If objFSO.FileExists(Server.MapPath("Ch07CreFile.asp") Then Set objFile = objFSO.GetFile(Server.MapPath("Ch07CreFile.asp") Respo
48、nse.Write "文件的路徑:" & objFile.Path & "<BR>" Response.Write "文件的建立日期:" & objFile.DateCreated & "<BR>" Response.Write "文件的大?。?quot; & objFile.Size & "<BR>" Response.Write "文件的類型:" & objFile.Ty
49、pe & "<BR>" Else Response.Write "CreFile.asp文件不存在無(wú)法顯示相關(guān)信息" End If Set objFile = Nothing '釋放File對(duì)象 Set objFSO = Nothing '釋放FileSystemObject對(duì)象 %> </BODY></HTML>六、文件的打開、讀取和寫入操作1打開文件兩種方法都可以打開文件:u objFSO.OpenTextFile(filename,iomode,create,format)u obj
50、FSO.OpenAsTextStream(Iomode,Format):2讀取文件(1)從文件讀取Num個(gè)字符本例從Sample1.txt文件每次讀取6個(gè)字符,直到文件結(jié)尾。Sample1.txt文件只有一行數(shù)據(jù),內(nèi)容為“好書推薦:逝去之夢(mèng)3D精彩動(dòng)畫制作”。<HTML> <BODY> <% Dim objFSO, objTS, Chars Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Set objTS = objFSO.OpenTextFile(Server.M
51、apPath("Sample1.txt"), 1) Do While Not objTS.AtEndOfStream '檢查是否到達(dá)文件結(jié)尾 Chars = objTS.Read(6) '讀取6個(gè)字符給字符串變量Chars Response.Write Chars & "<BR>" '輸出Chars和強(qiáng)制換行標(biāo)記 Loop objTS.Close '關(guān)閉已打開的文件 Set objTS = Nothing '釋放TextStream對(duì)象案例 Set objFSO = Nothing '釋
52、放FileSystemObject對(duì)象案例 %> </BODY></HTML>(2)從文件讀取Num個(gè)字符本例使用objTS.ReadLine從Sample2.txt文件中每次讀取一行,直到文件結(jié)尾。<HTML> <BODY> <% Dim objFSO, objTS, ALine Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Set objTS = objFSO.OpenTextFile(Server.MapPath("Sa
53、mple2.txt"), 1) Do While Not objTS.AtEndOfStream '檢查是否到達(dá)文件結(jié)尾 ALine = objTS.ReadLine '讀取一行字符給字符串變量ALine Response.Write ALine '輸出ALineResponse.Write "<BR>" '強(qiáng)制換行標(biāo)記 Loop objTS.Close '關(guān)閉已打開的文件 Set objTS = Nothing '釋放TextStream對(duì)象案例 Set objFSO = Nothing '釋放
54、FileSystemObject對(duì)象案例 %> </BODY></HTML>(3)從文件讀取全部?jī)?nèi)容本例使用objTS.ReadAll一次讀取Sample2.txt文件中全部?jī)?nèi)容,然后顯示在瀏覽器上。<HTML><BODY><% Dim objFSO, objTS, AllLines, ResultSet objFSO = Server.CreateObject("Scripting.FileSystemObject") Set objTS = objFSO.OpenTextFile(Server.MapPath(
55、"Sample2.txt"), 1)'在讀取文件內(nèi)容之前先使用 If 語(yǔ)句檢查是否到達(dá)文件結(jié)尾If Not objTS.AtEndOfStream Then '讀取全部?jī)?nèi)容,再指派給字符串變量 AllLinesAllLines = objTS.ReadAll '使用 Replace 函數(shù)將字符串變量中的換行字符置換成強(qiáng)制換行標(biāo)記Result = Replace(AllLines, vbCrLf, "<BR>")Response.Write ResultEnd IfobjTS.Close'關(guān)閉已打開的文件Set
56、objTS = Nothing'釋放 TextStream 對(duì)象實(shí)例Set objFSO = Nothing'釋放 FileSystemObject 對(duì)象實(shí)例%> </BODY></HTML>3. 寫入文件在成功打開文件并取得一個(gè)TextStream對(duì)象實(shí)例之后,我們可以分別使用TextStream對(duì)象提供的Write(String)、WriteLine(String)、WriteBlankLines(Num)方法,在文件內(nèi)寫入字符串、字符串和換行字符、Num個(gè)換行字符?,F(xiàn)在我們一起來(lái)看這三個(gè)方法應(yīng)用的例子。<HTML><BODY
57、><% Dim objFSO, objTS, AllLines, Result Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Set objTS = objFSO.OpenTextFile(Server.MapPath("Sample3.txt"), 2, True) '以只寫模式打開Sample3.txt,若文件不存在,便建立 objTS.Write("你學(xué)習(xí)電腦的最佳伙伴") objTS.WriteLine("快快樂(lè)樂(lè)學(xué)系
58、列") objTS.WriteBlankLines("3") objTS.WriteLine("E時(shí)代網(wǎng)頁(yè)設(shè)計(jì)") objTS.WriteLine("Linux最新版快速入門") objTS.WriteLine("Flash 5.0網(wǎng)頁(yè)高手") objTS.WriteLine("ASP與網(wǎng)頁(yè)數(shù)據(jù)庫(kù)設(shè)計(jì)") objTS.Close '關(guān)閉已打開的文件 Set objTS = Nothing '釋放TextStream對(duì)象實(shí)例 Set objFSO = Nothing
59、39;釋放FileSystemObject對(duì)象實(shí)例 %></BODY></HTML>4如何設(shè)置Server-Side IncludeServer-Side Include允許我們將一些常用的功能寫成獨(dú)立的文件,然后插入網(wǎng)頁(yè),如此一來(lái),就不用重復(fù)編寫相同的程序代碼,而且一旦這些功能需要進(jìn)行調(diào)整時(shí),只要修改定義這些功能的文件,而不必到每個(gè)網(wǎng)頁(yè)做修改。使用格式如下: <!-#include file=“asp文件名稱” - ->例如,我們已經(jīng)編制好了NaviBar.asp,其代碼如下: <A HREF="default.htm">回首頁(yè)</A><BR> <A HREF="about.htm">文淵閣簡(jiǎn)介</A><BR> <A HREF="books.htm">系列圖書</A><BR>我們可以在Include1.asp中包含上面的那段代碼:<HTML> <BODY>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中國(guó)汽車雨刮電機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)機(jī)用打包機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 2024至2030年引氣減水劑項(xiàng)目投資價(jià)值分析報(bào)告
- 2024年高效縮絨劑項(xiàng)目可行性研究報(bào)告
- 房地產(chǎn)項(xiàng)目合作開發(fā)協(xié)議書
- 大型活動(dòng)安全生產(chǎn)管理制度
- 旋挖樁基礎(chǔ)施工安全風(fēng)險(xiǎn)評(píng)估方案
- 沉井施工項(xiàng)目進(jìn)度管理方案
- 學(xué)校宿舍開荒保潔方案
- 識(shí)字3“貝”的故事 說(shuō)課稿-2023-2024學(xué)年語(yǔ)文二年級(jí)下冊(cè)統(tǒng)編版
- 生物質(zhì)能發(fā)電技術(shù)應(yīng)用中存在的問(wèn)題及優(yōu)化方案
- GA 1809-2022城市供水系統(tǒng)反恐怖防范要求
- 幼兒園繪本故事:《老虎拔牙》 課件
- 2021年上半年《系統(tǒng)集成項(xiàng)目管理工程師》真題
- 一個(gè)冬天的童話 遇羅錦
- GB/T 706-2008熱軋型鋼
- 實(shí)驗(yàn)六 雙子葉植物莖的初生結(jié)構(gòu)和單子葉植物莖的結(jié)構(gòu)
- GB/T 25032-2010生活垃圾焚燒爐渣集料
- GB/T 13610-2020天然氣的組成分析氣相色譜法
- 《彩虹》教案 省賽一等獎(jiǎng)
- 2023年湖南建筑工程初中級(jí)職稱考試基礎(chǔ)知識(shí)
評(píng)論
0/150
提交評(píng)論