要用 FileSystemObject (FSO) 對象模式來編程,則:
1使用 CreateObject 方法來創建 FileSystemObject 對象。
2在新創建的對象上使用適當的方法。
3訪問對象的屬性。
FSO 對象模式包含在 Scripting 類型庫中,該庫位於 Scrrun.dll 文件中。因而,要使用 FSO 對象模式,必須把 Scrrun.dll 放在 Web 服務器的適當系統目錄中。
創建 FileSystemObject 對象
首先,使用 CreateObject 對象來創建 FileSystemObject 對象, 在 VBScript 中,使用下面的代碼來創建 FileSystemObject 的一個實例:
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
示例代碼示范了如何創建 FileSystemObject 的一個實例。
在 JScript 中,使用下面的代碼來做同樣的事情:
var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
在這兩個示例中,Scripting 是類型庫的名字,而 FileSystemObject 則是想要創建的對象的名字。可以只創建 FileSystemObject 對象的一個實例,而不管試圖創建另一個實例的次數。
使用適當的方法
其次,使用 FileSystemObject 對象的適當方法。例如,要創建一個新的對象,則使用 CreateTextFile 或 CreateFolder (FSO 對象模式不支持驅動器的創建或刪除)。
要刪除對象,則使用 FileSystemObject 對象的 DeleteFile 和 DeleteFolder 方法,或 File 和 Folder 對象的 Delete 方法。也可以使用適當的方法,來復制和移動文件與文件夾。
--------------------------------------------------------------------------------
注意 FileSystemObject 對象模式中的某些功能是多余的。例如,可以用 FileSystemObject 對象的 CopyFile 方法,也可以用 File 對象的 Copy 方法來復制文件。這兩種方法功能是相同的;兩種方法都能使編程靈活。
--------------------------------------------------------------------------------
訪問現有驅動器、文件和文件夾
要訪問現有驅動器、文件或文件夾,則使用 FileSystemObject 對象中的適當的 "get" 方法:
GetDrive
GetFolder
GetFile
在 VBScript 中要訪問現有文件:
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.GetFile("c:\test.txt")
在 JScript 中要做同樣的事情,則使用下面的代碼:
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile("c:\\test.txt");
不要對新創建的對象使用 "get" 方法,因為 "create" 函數已經返回那個對象的一個句柄。例如,如果使用 CreateFolder 方法創建了一個新的文件夾,則不要使用 GetFolder 方法來訪問它的屬性,如 Name、Path、Size等等。只需設一個變量給 CreateFolder 函數,來獲得新創建文件夾的句柄名,然後訪問它的屬性、方法和事件。要在 VBScript 中這樣做,則使用下面的代碼:
Sub CreateFolder
Dim fso, fldr
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.CreateFolder("C:\MyTest")
Response.Write "Created folder: " & fldr.Name
End Sub
在 JScript 中給 CreateFolder 函數設置一個變量,則使用下面的語法:
function CreateFolder()
{
var fso, fldr;
fso = new ActiveXObject("Scripting.FileSystemObject");
fldr = fso.CreateFolder("C:\\MyTest");
Response.Write("Created folder: " + fldr.Name);
}
訪問對象的屬性
一旦有了對象的句柄,就可以訪問它的屬性。例如,要獲得特定文件夾的名字,首先創建該對象的一個實例,然後用適當的方法獲得它的句柄(在這個例子中是 GetFolder 方法,因為該文件夾已經存在了)。
在 VBScript 中,用該代碼來獲得 GetFolder 方法的一個句柄:
Set fldr = fso.GetFolder("c:\")
在 JScript 中要做同樣的事情,則使用下面的代碼:
var fldr = fso.GetFolder("c:\\");
現在,已經有了 Folder 對象的句柄,就可以檢查它的 Name 屬性了。在 VBScript 中使用下面的代碼來檢查:
Response.Write "Folder name is: " & fldr.Name
在 JScript 中要檢查 Name 屬性,則使用下面的語法:
Response.Write("Folder name is: " + fldr.Name);
要找出最後一次修改文件的時間,則使用下面的 VBScript 語法:
Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
' 獲得要查詢的文件對象。
Set f1 = fso.GetFile("c:\detlog.txt")
' 打印信息。
Response.Write "File last modified: " & f1.DateLastModified
在 JScript 中要找出同樣的事情,則使用下面的代碼:
var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
// 獲得要查詢的文件對象。
f1 = fso.GetFile("c:\\detlog.txt");
// 打印信息。
Response.Write("File last modified: " + f1.DateLastModified);