2013年9月25日 星期三

FSO 元件--檔案系統物件

IIS上使用 [檔案系統物件] ( FSO, File System Object )可以取得Server 上的磁碟,資料夾和檔案內容資訊,也就是說我們在網頁程式設計應用上,可以利用它的特性來做取得WEB Server 上的檔案名稱、大小、建檔日期等等屬性,當然也可以對檔案做讀寫動作,在 Server 端專門用來解析這個物件的動態函式庫是:scrrun.dll。
在ASP程式中啟用這個物件的語法是:
Set my_FSO = CreateObject("Scripting.FileSystemObject")
    FSO物件在IIS4.0以上有超過20幾種方法,以下是FSO物件常用的幾種常見方法:
屬性/方法說明
Drives屬性傳回磁碟代號、磁碟類型、共享名稱、磁碟標籤等
CopyFile方法複製檔案
CopyFolder方法複製資料夾
CreatFolder方法建立新資料夾
Deletefile 、DeleteFolder方法刪除檔案或資料夾
DriveExists方法判斷磁碟機是否存在
FileExists 、FolderExists方法判斷檔案或資料夾是否存在
GetDriveName方法取得磁碟機名稱
GetExtensionName方法取得檔案的副檔名
GetParentFolderName方法取得上層資料夾名稱
MoveFile方法搬移檔案
MoveFolder方法搬移資料夾
對於文字檔的讀寫,我們可以使用 FSO 物件的子物件: TextStream ,下面是這個物件的屬性和方法
AtEndOfLine屬性判斷是否是文字行的最後一個字元
AtEndOfStream屬性判斷是否是文字檔內容的最後(結尾)
OpenTextFile 方法. Close 方法開啟/關閉文字檔
Read方法讀取文字內容
ReadAll方法讀取文字檔案內全部文字內容
ReadLine方法逐行讀取
Write方法寫入字串
Writeline方法寫入一行字串
WriteBlankLines方法寫入一行空字串
我們來做個FSO的語法的練習:
<%
    mydir = request("dir")                                    '取得路徑字串放入變數
    realpath = server.mappath(mydir)                      '取得絕對路徑
    set my_FSO=CreateObject("Scripting.FileSystemObject")             '使用FSO物件
    set my_folder=my_FSO.getfolder(realpath)    '取得資料夾路徑
    set folder_content=my_folder.subfolders        '取得這個資料夾內的所有子資料夾
    set file_list=my_folder.files                        '取得這個資料夾的檔案清單

     if my_FSO.FileExists(realpath & "/index.htm") then           '如果這個檔案存在
        response.redirect "index.htm"
    else
        response.write "資料夾中沒有首頁 index.htm 檔"
        response.write file_list
        response.write folder_content
        response.write my_folder
     end if
end if
%>