五、文件系統(tǒng)對象(FileSystemObject)編程
1、File System Object 模型介紹
Visual Basic 的一個新功能是 File System Object (FSO) 對象模型,該模型提供了一個基于對象的工具來處理文件夾和文件。這使您除了使用傳統(tǒng)的Visual Basic 語句和命令之外,還可以使用您所熟悉的帶有一整套屬性、方法和事件的 object.method 語法來處理文件夾和文件。
FSO 對象模型使應用程序能夠創(chuàng)建、改變、移動和刪除文件夾,或者檢測是否存在指定的文件夾,如果存在,在哪。FSO 對象模型也能使您獲取關于文件夾的信息,諸如名稱、創(chuàng)建日期或最近修改日期等等。FSO 對象模型也使得對文件的處理變得更加簡單。在處理文件時,首要目標就是以一種可以有效利用空間和資源、并且易于存取的格式來存儲數據。需要能夠創(chuàng)建文件、插入和修改數據、以及輸出(讀)數據。雖然可以將數據存儲在諸如 Jet 或 SQL 這樣的數據庫中,但是這樣做將在應用程序中加入相當數量的額外開支。出于多種原因,您不想有這樣的額外開支,或者數據存取要求不需要用一個與全功能數據庫關聯(lián)的所有額外功能。在這種情況下,用二進制或文本文件來存儲數據是的解決方法。包含在 Scripting 類型庫 (Scrrun.Dll) 中的FSO 對象模型支持通過TextStream 對象創(chuàng)建和操作文本文件。但是,它還不支持二進制文件的創(chuàng)建和操作。要操作二進制文件,請使用帶 Binary 標志的 Open 命令(關于如何操作二進制文件的詳細信息已在前面介紹過,請參閱)。
2、文件系統(tǒng)對象(File System Object)
FSO對象模型包括這些對象:
對象 描述
Drive 允許收集關于系統(tǒng)所用的驅動器的信息,諸如驅動器有多少可用空間,其共享名稱是什么,等等。請注意,一個“驅動器”并不一定是一個硬盤。它可以是 CD-ROM 驅動器、一個RAM 盤等等。而且,驅動器不一定是和系統(tǒng)物理地連接;也可以通過一個 LAN進行邏輯地連接。
Folder 允許創(chuàng)建、刪除或移動文件夾,并向系統(tǒng)查詢文件夾的名稱、路徑等。
Files 允許創(chuàng)建、刪除或移動文件,并向系統(tǒng)查詢文件的名稱、路徑等
FileSystemObject 該組的主要對象,提供一整套用于創(chuàng)建、刪除、收集相關信息、以及通常的操作驅動器、文件夾和文件的方法。與本對象相關聯(lián)的很多方法復制了其它對象中的方法。
TextStream 允許您讀和寫文本文件。
關于 FSO 對象模型中各種屬性、方法和事件的信息,請使用 Visual Basic 中的“對象瀏覽器”(按 F2 鍵)并查看 Scripting 類型庫?! ?BR> FSO對象模型包含在一個稱為Scripting的類型庫中,此類型庫位于Scrrun.DII文件中。如果還沒有引用此文件,從“工程”菜單的“引用”對話框選擇"Microsoft Scripting Runtime "項。然后就可以使用"對象瀏覽器"來查看其對象、集合、屬性、方法、事件以及它的常數。
3、FSO 對象模型編程
FSO對象模型編程包括三項主要任務:
使用CreateObject方法,或將一個變量聲明為FileSystemObject對象類型來創(chuàng)建一個FileSystemObject對象。
對新創(chuàng)建的對象使用適當的方法。
訪問該對象的屬性。
下面分別說明。
(1)創(chuàng)建 FileSystemObject 對象
第一步是創(chuàng)建一個 FileSystemObject 對象以便進行處理。可以通過如下兩種方法完成:
將一個變量聲明為 FileSystemObject 對象類型:
Dim fso As New FileSystemObject
使用 CreateObject 方法來創(chuàng)建一個 FileSystemObject 對象:
Set fso = CreateObject("Scripting.FileSystemObject")
在上面的語法中, Scripting 是類型庫的名稱,而 FileSystemObject 則是想要創(chuàng)建一個實例的對象的名稱。
注意:第一種方法只在 Visual Basic 中有效,而第二種方法在 Visual Basic或 VBScript 中都是可行的。
(2)使用適當的方法
下一步就是使用該 FileSystemObject 對象的適當方法。例如,如果想要創(chuàng)建一個新對象,既可以使用 CreateFolder 方法也可以使用 CreateTextFile 方法(FSO 對象模型不支持創(chuàng)建或刪除驅動器)。如果想要刪除對象,可以使用 FileSystemObject 對象的 DeleteFile 和DeleteFolder 方法,或者 File 和 Folder 對象的 Delete 方法。使用適當的方法,還可以復制、移動文件和文件夾。
請注意,F(xiàn)ileSystemObject 對象模型中有一些功能是冗余的。例如,要復制一個文件,既可以使用 FileSystemObject 對象的 CopyFile 方法,也可以使用 File 對象的 Copy 方法。這兩者的功能是完全相同的。兩者同時提供的編程靈活性。
(3)訪問已有的驅動器、文件和文件夾
要訪問一個已有的驅動器、文件或文件夾,請使用 FileSystemObject 對象中相應的 "get" 方法:
GetDrive
GetFolder
GetFile
例如:
Dim fso As New FileSystemObject, fil As File
Set fil = fso.GetFile("c:\test.txt")
但是,請注意,并不需要對新創(chuàng)建的對象使用"get" 方法,因為"create" 函數已經返回了一個句柄到新創(chuàng)建的對象。例如,如果使用 CreateFolder 方法創(chuàng)建了一個新的文件夾,就沒有必要使用 GetFolder 方法來訪問該對象的諸如名稱、路徑、大小等屬性。只要給 CreateFolder 函數設置一個變量來獲取新建文件夾的句柄,然后就可以訪問其屬性、方法和事件
1、File System Object 模型介紹
Visual Basic 的一個新功能是 File System Object (FSO) 對象模型,該模型提供了一個基于對象的工具來處理文件夾和文件。這使您除了使用傳統(tǒng)的Visual Basic 語句和命令之外,還可以使用您所熟悉的帶有一整套屬性、方法和事件的 object.method 語法來處理文件夾和文件。
FSO 對象模型使應用程序能夠創(chuàng)建、改變、移動和刪除文件夾,或者檢測是否存在指定的文件夾,如果存在,在哪。FSO 對象模型也能使您獲取關于文件夾的信息,諸如名稱、創(chuàng)建日期或最近修改日期等等。FSO 對象模型也使得對文件的處理變得更加簡單。在處理文件時,首要目標就是以一種可以有效利用空間和資源、并且易于存取的格式來存儲數據。需要能夠創(chuàng)建文件、插入和修改數據、以及輸出(讀)數據。雖然可以將數據存儲在諸如 Jet 或 SQL 這樣的數據庫中,但是這樣做將在應用程序中加入相當數量的額外開支。出于多種原因,您不想有這樣的額外開支,或者數據存取要求不需要用一個與全功能數據庫關聯(lián)的所有額外功能。在這種情況下,用二進制或文本文件來存儲數據是的解決方法。包含在 Scripting 類型庫 (Scrrun.Dll) 中的FSO 對象模型支持通過TextStream 對象創(chuàng)建和操作文本文件。但是,它還不支持二進制文件的創(chuàng)建和操作。要操作二進制文件,請使用帶 Binary 標志的 Open 命令(關于如何操作二進制文件的詳細信息已在前面介紹過,請參閱)。
2、文件系統(tǒng)對象(File System Object)
FSO對象模型包括這些對象:
對象 描述
Drive 允許收集關于系統(tǒng)所用的驅動器的信息,諸如驅動器有多少可用空間,其共享名稱是什么,等等。請注意,一個“驅動器”并不一定是一個硬盤。它可以是 CD-ROM 驅動器、一個RAM 盤等等。而且,驅動器不一定是和系統(tǒng)物理地連接;也可以通過一個 LAN進行邏輯地連接。
Folder 允許創(chuàng)建、刪除或移動文件夾,并向系統(tǒng)查詢文件夾的名稱、路徑等。
Files 允許創(chuàng)建、刪除或移動文件,并向系統(tǒng)查詢文件的名稱、路徑等
FileSystemObject 該組的主要對象,提供一整套用于創(chuàng)建、刪除、收集相關信息、以及通常的操作驅動器、文件夾和文件的方法。與本對象相關聯(lián)的很多方法復制了其它對象中的方法。
TextStream 允許您讀和寫文本文件。
關于 FSO 對象模型中各種屬性、方法和事件的信息,請使用 Visual Basic 中的“對象瀏覽器”(按 F2 鍵)并查看 Scripting 類型庫?! ?BR> FSO對象模型包含在一個稱為Scripting的類型庫中,此類型庫位于Scrrun.DII文件中。如果還沒有引用此文件,從“工程”菜單的“引用”對話框選擇"Microsoft Scripting Runtime "項。然后就可以使用"對象瀏覽器"來查看其對象、集合、屬性、方法、事件以及它的常數。
3、FSO 對象模型編程
FSO對象模型編程包括三項主要任務:
使用CreateObject方法,或將一個變量聲明為FileSystemObject對象類型來創(chuàng)建一個FileSystemObject對象。
對新創(chuàng)建的對象使用適當的方法。
訪問該對象的屬性。
下面分別說明。
(1)創(chuàng)建 FileSystemObject 對象
第一步是創(chuàng)建一個 FileSystemObject 對象以便進行處理。可以通過如下兩種方法完成:
將一個變量聲明為 FileSystemObject 對象類型:
Dim fso As New FileSystemObject
使用 CreateObject 方法來創(chuàng)建一個 FileSystemObject 對象:
Set fso = CreateObject("Scripting.FileSystemObject")
在上面的語法中, Scripting 是類型庫的名稱,而 FileSystemObject 則是想要創(chuàng)建一個實例的對象的名稱。
注意:第一種方法只在 Visual Basic 中有效,而第二種方法在 Visual Basic或 VBScript 中都是可行的。
(2)使用適當的方法
下一步就是使用該 FileSystemObject 對象的適當方法。例如,如果想要創(chuàng)建一個新對象,既可以使用 CreateFolder 方法也可以使用 CreateTextFile 方法(FSO 對象模型不支持創(chuàng)建或刪除驅動器)。如果想要刪除對象,可以使用 FileSystemObject 對象的 DeleteFile 和DeleteFolder 方法,或者 File 和 Folder 對象的 Delete 方法。使用適當的方法,還可以復制、移動文件和文件夾。
請注意,F(xiàn)ileSystemObject 對象模型中有一些功能是冗余的。例如,要復制一個文件,既可以使用 FileSystemObject 對象的 CopyFile 方法,也可以使用 File 對象的 Copy 方法。這兩者的功能是完全相同的。兩者同時提供的編程靈活性。
(3)訪問已有的驅動器、文件和文件夾
要訪問一個已有的驅動器、文件或文件夾,請使用 FileSystemObject 對象中相應的 "get" 方法:
GetDrive
GetFolder
GetFile
例如:
Dim fso As New FileSystemObject, fil As File
Set fil = fso.GetFile("c:\test.txt")
但是,請注意,并不需要對新創(chuàng)建的對象使用"get" 方法,因為"create" 函數已經返回了一個句柄到新創(chuàng)建的對象。例如,如果使用 CreateFolder 方法創(chuàng)建了一個新的文件夾,就沒有必要使用 GetFolder 方法來訪問該對象的諸如名稱、路徑、大小等屬性。只要給 CreateFolder 函數設置一個變量來獲取新建文件夾的句柄,然后就可以訪問其屬性、方法和事件