File Access 組件中常見的對象有 FileSystemObject、TextStream、File、Folder、Drive等,其中每一個對象都有不同的屬性和方法,我們將會在用到的時候進行詳細介紹。
FileSystemObject 對象用於訪問服務器上的文件系統。
此對象可對文件、文件夾和目錄路徑進行操作、獲取文件系統信息。
直接上例子(FSO_TextFile.asp)了,首先我們檢查是否存在“test.txt”文件,不存在則創建它,並寫入一些文本,然后將該內容顯示在表單中,經過修改后,再實現保存功能。
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <!doctype html> <html> <head> <meta charset="utf-8"> <title>FileSystemObject 組件應用</title> </head> <body> <h3> <% Const sFileName = "/test.txt" Const ForReading = 1 '以只讀方式打開文件 Const ForWriting = 2 '以寫方式打開文件 Const ForAppending = 8'打開文件並從文件末尾開始寫 Dim oFSO, oFile, sFileContent '讀取和保存功能都在同一個頁面,先判斷是否是表單提交保存(POST) If UCase(Trim(Request.ServerVariables("REQUEST_METHOD"))) = "POST" Then '保存功能的實現 sFileContent = Request.Form("FileContent") Set oFSO = Server.CreateObject("Scripting.FileSystemObject") Set oFile = oFSO.OpenTextFile(Server.MapPath(sFileName), ForWriting) oFile.Write(sFileContent) oFile.Close Response.Write("test.txt 保存完畢,並讀取") Else '創建FSO對象 Set oFSO = Server.CreateObject("Scripting.FileSystemObject") '判斷 test.txt 是否存在,不存在則創建 test.txt 文件 If NOT oFSO.FileExists(Server.MapPath(sFileName)) Then Set oFile = oFSO.CreateTextFile(Server.MapPath(sFileName)) oFile.Write("test.txt 首次創建,請開始編輯吧") Response.Write("文件不存在,創建 test.txt,") oFile.Close Set oFile = Nothing End If Set oFile = oFSO.OpenTextFile(Server.MapPath(sFileName), ForReading) Response.Write("讀取 test.txt 內容") '讀取 test.txt 全部內容 sFileContent = oFile.ReadAll() oFile.Close End If 'POST 判斷 %> </h3> <form action="" method="POST"> <textarea rows="10" cols="50" name="FileContent"><%=sFileContent%></textarea> <input type="submit" value="保存"/> </form> <% Set oFSO = Nothing Set oFile = Nothing %> </body> </html>
如果 test.txt 文件不存在的話,則首次運行,會創建該文件,創建文件時用到了 FSO 的 CreateTextFile 方法,該方法返回一個 TextStream 對象。
首次運行效果如下:
我們可以開始編輯,最后點擊“保存”提交表單。
請注意
我們在使用完 oFile 和 oFSO 對象完畢后,都及時將它們關閉並清空,這樣有助於節省服務器的系統資源。
FileSystemObject 其他方法
我們只是講解了 FSO 最常用的功能之一,讀取和寫入文本文件的操作。FSO 具有對驅動器和文件夾兩種文件系統對象訪問的功能,這里我們只是羅列一下有需要的時候僅供參考。
FSO 對象與驅動器有關的方法如下表:
| 方法 | 說明 |
| DriveExists(drive) | 返回指定的驅動器是否存在的布爾值,drive 參數必須的,驅動器的字母或者文件、文件夾完整的絕對路徑。 |
| GetDrive(drivespec) | 返回由 drivespec 參數規定的 Drive 對象,可以使驅動器字母(c),或者帶冒號的驅動器字母(c:),或者帶有冒號和路徑分隔符的驅動器字母(C:\),或者任何網絡共享規范(\\machine\sharename) |
| GetDriveName(path) | 返回一個字符串,該值是指定路徑的驅動器名稱,必須是文件或文件夾的絕對路徑,或者僅僅是驅動器名稱(C或者 C:) |
以上每個方法具體的示例已經在代碼(FSO_Other.asp) 中,請自行下載測試吧,效果如下:
FSO 對象與文件夾有關的方法如下表:
| 方法 | 說明 |
| CopyFolder source, destination[, overwrite] | 從指定的源文件夾 source (可以包含通配符)中復制一個或多個文件夾到指定目標文件夾 destination,包含了源文件夾中的所有文件。 如果 source 包含通配符或 destination 末尾是路徑分隔符(”\”)那么認為 destination 就是要放置源文件夾的拷貝文件夾。 overwirte 默認為 True |
| CreateFolder(name) | 創建一個 name 文件夾,如果 name 已經存在將產生錯誤 |
| DeleteFolder(foldername[, force]) | 刪除一個或多個指定的文件夾,如果您視圖刪除不存在的文件夾將會引發錯誤。foldername 參數支持通配符,force 布爾參數可選,是否刪除只讀文件夾,True 為刪除,默認值為 False |
| FolderExists(foldername) | 返回指定文件夾是否存在的布爾值 |
| GetAbsolutePathName(path) | 為指定路徑返回從根驅動器開始的完整路徑。例如當前路徑是 F:\JJ\FSO,而 path 參數傳遞的是 Folder ,則返回的完整路徑是 F:\JJ\FSO\Folder |
| GetFolder(path) | 返回指定路徑的 Folder 對象。 |
| GetParentFolderName(path) | 返回指定路徑中最后成分的父文件夾的名稱。path 參數需要其 父文件夾名稱的文件或文件夾路徑。不檢測該文件夾是否存在 |
| GetSpecialFolder(foldername) | 返回一個特定的 Windows 文件夾對應的 Folder 對象,參數 foldername 可以是 0=WindowsFolder 1=SystemFolder 2=TemporaryFolder |
| MoveFolder source, destination | 將 source 指定的一個或多個文件夾移動到 destination 指定的文件夾。在 source 中可以包含通配符,但在 destination 中不行。如果 destination 已經存在則產生錯誤 |
以上每個方法具體的示例已經在代碼(FSO_Other.asp) 中,請自行下載測試吧,效果如下:
FSO 對象與文件有關的方法如下表:
| 方法 | 說明 |
| CopyFile source, destination[, overwrite] | 從一個位置向另一個位置拷貝一個或多個文件,source 參數可以使用通配符,destination 參數不可以使用通配符,overwrite 參數默認為 True(覆蓋) |
| CreateTextFile(filename[, overwrite[, unicode]]) | 在當前文件中創建新的文本文件,並返回可以讀或寫的 TextStream 對象,overwrite 參數默認為 True, unicode 參數默認為 False(創建ASCII文件) |
| DeleteFile(filename[, force]) | 刪除一個或多個指定的文件,如果您視圖刪除的文件不存在,會引發錯誤 |
| FileExists(filename) | 返回指定的文件是否存在的布爾值,如果存在返回 True |
| GetBaseName(path) | 返回指定路徑中的文件或文件夾的基准名稱 |
| GetExtensionName(path) | 返回包含指定路徑中最后成分的文件擴展名的字符串 |
| GetFile(path) | 返回指定路徑的 File 對象。 |
| GetFileName(path) | 返回指定路徑中最后成分的文件名或文件夾名的字符串 |
| GetTempName | 無參數,返回一個隨機產生的臨時文件或文件夾 |
| MoveFile source, destination | 把一個或多個文件從一個位置移動到另一個位置,source 參數可以包含通配符,destination 參數不可以包含通配符 |
| OpenTextFile(fname, mode[, create[, format]]) | 打開指定文件,並返回 TextStream 對象,fname 參數是要打開的文件名稱,mode 參數可選1、2、8 |
以上每個方法具體的示例已經在代碼(FSO_Other.asp) 中,請自行下載測試吧,效果如下:




