ASP入門(十四)-FileSystemObject 對象


File Access 組件中常見的對象有 FileSystemObjectTextStreamFileFolderDrive等,其中每一個對象都有不同的屬性和方法,我們將會在用到的時候進行詳細介紹。

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 對象。

首次運行效果如下:

20150816001

我們可以開始編輯,最后點擊“保存”提交表單。

20150816002

請注意

我們在使用完 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) 中,請自行下載測試吧,效果如下:

20150817001


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) 中,請自行下載測試吧,效果如下:

20150817002

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) 中,請自行下載測試吧,效果如下:

20150817003

示例代碼下載

FSO.RAR


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM