從 Visual Basic 的第一版至今,VB中有關(guān)文件的處理都是通過使用 Open 、Write以及其它一些相關(guān)的語句和函數(shù)來實(shí)現(xiàn)的。隨著軟件技術(shù)的不斷發(fā)展,加上面向?qū)ο缶幊谈拍畹娜照槌墒?,這些文件操作語句已經(jīng)不能適應(yīng)軟件不斷增加的復(fù)雜程度的需要了。因此,從VB6.0開始,微軟提出了一個(gè)全新的文件系統(tǒng)對(duì)象FSO。
一、簡(jiǎn)介
文件系統(tǒng)對(duì)象FSO的英文全稱是File System Object ,這種對(duì)象模型提出了有別于傳統(tǒng)的文件操作語句處理文件和文件夾的方法。通過采用object.method這種在面向?qū)ο缶幊讨袕V泛使用的語法,將一系列操作文件和文件夾的動(dòng)作通過調(diào)用對(duì)象本身的屬性直接實(shí)現(xiàn)。
FSO 對(duì)象模型不僅可以象使用傳統(tǒng)文件操作語句那樣實(shí)現(xiàn)文件的創(chuàng)建、改變、移動(dòng)和刪除,而且可以檢測(cè)是否存在指定的文件夾,如果存在,那么,這個(gè)文件夾又位于磁盤上的什么位置。更令人高興的是FSO 對(duì)象模型還可以獲取關(guān)于文件和文件夾的信息,如名稱、創(chuàng)建日期或最近修改日期等以及當(dāng)前系統(tǒng)中使用的驅(qū)動(dòng)器的信息,如驅(qū)動(dòng)器的種類是CD-ROM還是可移動(dòng)磁盤,當(dāng)前磁盤的剩余空間還有多少。而以前要獲取這些信息必須通過調(diào)用Windows API函數(shù)集中的相應(yīng)函數(shù)才能實(shí)現(xiàn)。
FSO對(duì)象模型包含在Scripting 類型庫 (Scrrun.Dll)中,它同時(shí)包含了Drive、Folder、File、FileSystemObject和TextStream五個(gè)對(duì)象。其中Drive用來收集驅(qū)動(dòng)器的信息,如可用磁盤空間或驅(qū)動(dòng)器的類型;Folder用于創(chuàng)建、刪除或移動(dòng)文件夾,同時(shí)可以進(jìn)行向系統(tǒng)查詢文件夾的路徑等操作;File的基本操作和Folder基本相同,所不同的是Files的操作主要是針對(duì)磁盤上的文件進(jìn)行的;FileSystemObject是FSO對(duì)象模型中最主要對(duì)象,它提供了一套完整的可用于創(chuàng)建、刪除文件和文件夾,收集驅(qū)動(dòng)器、文件夾、文件相關(guān)信息的方法。需要注意的是,F(xiàn)SO對(duì)象模型提供的方法是冗余的,也就是說在實(shí)際使用中,F(xiàn)SO對(duì)象模型中包含的不同對(duì)象的不同方法進(jìn)行的卻是同樣的操作,而且FileSystemObject對(duì)象的方法直接作用于其余對(duì)象,所以在后面的文章中并沒有單獨(dú)提到FileSystemObject對(duì)象,千萬不要以為沒有提到就不重要,事實(shí)上FileSystemObject對(duì)象在整個(gè)FSO對(duì)象模型中無處不在;最后的TextStream對(duì)象則是用來完成對(duì)文件的讀寫操作的。
在初步了解了FSO對(duì)象模型之后,下面我們通過實(shí)際的代碼對(duì)不同的對(duì)象進(jìn)行進(jìn)一步的闡述。
二、FSO對(duì)象模型的應(yīng)用
(一)創(chuàng)建FSO對(duì)象模型
由于FSO對(duì)象包含在Scripting 類型庫 (Scrrun.Dll)中,所以在使用前首先需要在在工程中引用這個(gè)文件,單擊“工程”,“引用”,然后在“引用”對(duì)話框中選中“Microsoft Scripting Runtime”前的復(fù)選框,然后單擊“確定”。
要?jiǎng)?chuàng)建FSO對(duì)象可以采用兩種方法,一種是將一個(gè)變量聲明為FSO對(duì)象類型:
Dim fsoTest As New FileSystemObject;
另一種是通過CreateObject方法創(chuàng)建一個(gè)FSO 對(duì)象:
Set fsoTest = CreateObject(“Scripting.FileSystemObject");
在實(shí)際使用中具體采用哪種聲明方法,可根據(jù)個(gè)人的使用習(xí)慣而定。
完成了FSO對(duì)象模型的創(chuàng)建之后,就可以利用創(chuàng)建的對(duì)象模型的方法訪問下屬各個(gè)對(duì)象的屬性來獲取所需信息或進(jìn)行相關(guān)操作了,具體的方法在下面結(jié)合各個(gè)對(duì)象分別講述。
(二)Drive對(duì)象
上面已經(jīng)提到Drive對(duì)象是用來獲取當(dāng)前系統(tǒng)中各個(gè)驅(qū)動(dòng)器的信息的。由于Drive對(duì)象沒有方法,其應(yīng)用都是通過屬性表現(xiàn)出來的,所以我們必須熟悉Drive對(duì)象的屬性:
屬性 功能
AvailableSpace 返回在指定的驅(qū)動(dòng)器或網(wǎng)絡(luò)共享上的用戶可用的空間容量。
DriveLetter 返回某個(gè)指定本地驅(qū)動(dòng)器或網(wǎng)絡(luò)驅(qū)動(dòng)器的字母,這個(gè)屬性是只讀的。
DriveType 返回指定驅(qū)動(dòng)器的磁盤類型。
FileSystem 返回指定驅(qū)動(dòng)器使用的文件系統(tǒng)類型。
FreeSpace 返回指定驅(qū)動(dòng)器上或共享驅(qū)動(dòng)器可用的磁盤空間,這個(gè)屬性是只讀的。
IsReady 確定指定的驅(qū)動(dòng)器是否準(zhǔn)備好。
Path 返回指定文件、文件夾、或驅(qū)動(dòng)器的路徑。
RootFolder 返回一個(gè) Folder 對(duì)象,該對(duì)象表示一個(gè)指定驅(qū)動(dòng)器的根文件夾。只讀屬性。
SerialNumber 返回用于標(biāo)識(shí)磁盤卷標(biāo)的十進(jìn)制序列號(hào)。
ShareName 返回指定驅(qū)動(dòng)器的網(wǎng)絡(luò)共享名
TotalSize 以字節(jié)為單位,返回驅(qū)動(dòng)器或網(wǎng)絡(luò)共享的總空間大小。
VolumeName 設(shè)置或返回指定驅(qū)動(dòng)器的卷標(biāo)名。
一、簡(jiǎn)介
文件系統(tǒng)對(duì)象FSO的英文全稱是File System Object ,這種對(duì)象模型提出了有別于傳統(tǒng)的文件操作語句處理文件和文件夾的方法。通過采用object.method這種在面向?qū)ο缶幊讨袕V泛使用的語法,將一系列操作文件和文件夾的動(dòng)作通過調(diào)用對(duì)象本身的屬性直接實(shí)現(xiàn)。
FSO 對(duì)象模型不僅可以象使用傳統(tǒng)文件操作語句那樣實(shí)現(xiàn)文件的創(chuàng)建、改變、移動(dòng)和刪除,而且可以檢測(cè)是否存在指定的文件夾,如果存在,那么,這個(gè)文件夾又位于磁盤上的什么位置。更令人高興的是FSO 對(duì)象模型還可以獲取關(guān)于文件和文件夾的信息,如名稱、創(chuàng)建日期或最近修改日期等以及當(dāng)前系統(tǒng)中使用的驅(qū)動(dòng)器的信息,如驅(qū)動(dòng)器的種類是CD-ROM還是可移動(dòng)磁盤,當(dāng)前磁盤的剩余空間還有多少。而以前要獲取這些信息必須通過調(diào)用Windows API函數(shù)集中的相應(yīng)函數(shù)才能實(shí)現(xiàn)。
FSO對(duì)象模型包含在Scripting 類型庫 (Scrrun.Dll)中,它同時(shí)包含了Drive、Folder、File、FileSystemObject和TextStream五個(gè)對(duì)象。其中Drive用來收集驅(qū)動(dòng)器的信息,如可用磁盤空間或驅(qū)動(dòng)器的類型;Folder用于創(chuàng)建、刪除或移動(dòng)文件夾,同時(shí)可以進(jìn)行向系統(tǒng)查詢文件夾的路徑等操作;File的基本操作和Folder基本相同,所不同的是Files的操作主要是針對(duì)磁盤上的文件進(jìn)行的;FileSystemObject是FSO對(duì)象模型中最主要對(duì)象,它提供了一套完整的可用于創(chuàng)建、刪除文件和文件夾,收集驅(qū)動(dòng)器、文件夾、文件相關(guān)信息的方法。需要注意的是,F(xiàn)SO對(duì)象模型提供的方法是冗余的,也就是說在實(shí)際使用中,F(xiàn)SO對(duì)象模型中包含的不同對(duì)象的不同方法進(jìn)行的卻是同樣的操作,而且FileSystemObject對(duì)象的方法直接作用于其余對(duì)象,所以在后面的文章中并沒有單獨(dú)提到FileSystemObject對(duì)象,千萬不要以為沒有提到就不重要,事實(shí)上FileSystemObject對(duì)象在整個(gè)FSO對(duì)象模型中無處不在;最后的TextStream對(duì)象則是用來完成對(duì)文件的讀寫操作的。
在初步了解了FSO對(duì)象模型之后,下面我們通過實(shí)際的代碼對(duì)不同的對(duì)象進(jìn)行進(jìn)一步的闡述。
二、FSO對(duì)象模型的應(yīng)用
(一)創(chuàng)建FSO對(duì)象模型
由于FSO對(duì)象包含在Scripting 類型庫 (Scrrun.Dll)中,所以在使用前首先需要在在工程中引用這個(gè)文件,單擊“工程”,“引用”,然后在“引用”對(duì)話框中選中“Microsoft Scripting Runtime”前的復(fù)選框,然后單擊“確定”。
要?jiǎng)?chuàng)建FSO對(duì)象可以采用兩種方法,一種是將一個(gè)變量聲明為FSO對(duì)象類型:
Dim fsoTest As New FileSystemObject;
另一種是通過CreateObject方法創(chuàng)建一個(gè)FSO 對(duì)象:
Set fsoTest = CreateObject(“Scripting.FileSystemObject");
在實(shí)際使用中具體采用哪種聲明方法,可根據(jù)個(gè)人的使用習(xí)慣而定。
完成了FSO對(duì)象模型的創(chuàng)建之后,就可以利用創(chuàng)建的對(duì)象模型的方法訪問下屬各個(gè)對(duì)象的屬性來獲取所需信息或進(jìn)行相關(guān)操作了,具體的方法在下面結(jié)合各個(gè)對(duì)象分別講述。
(二)Drive對(duì)象
上面已經(jīng)提到Drive對(duì)象是用來獲取當(dāng)前系統(tǒng)中各個(gè)驅(qū)動(dòng)器的信息的。由于Drive對(duì)象沒有方法,其應(yīng)用都是通過屬性表現(xiàn)出來的,所以我們必須熟悉Drive對(duì)象的屬性:
屬性 功能
AvailableSpace 返回在指定的驅(qū)動(dòng)器或網(wǎng)絡(luò)共享上的用戶可用的空間容量。
DriveLetter 返回某個(gè)指定本地驅(qū)動(dòng)器或網(wǎng)絡(luò)驅(qū)動(dòng)器的字母,這個(gè)屬性是只讀的。
DriveType 返回指定驅(qū)動(dòng)器的磁盤類型。
FileSystem 返回指定驅(qū)動(dòng)器使用的文件系統(tǒng)類型。
FreeSpace 返回指定驅(qū)動(dòng)器上或共享驅(qū)動(dòng)器可用的磁盤空間,這個(gè)屬性是只讀的。
IsReady 確定指定的驅(qū)動(dòng)器是否準(zhǔn)備好。
Path 返回指定文件、文件夾、或驅(qū)動(dòng)器的路徑。
RootFolder 返回一個(gè) Folder 對(duì)象,該對(duì)象表示一個(gè)指定驅(qū)動(dòng)器的根文件夾。只讀屬性。
SerialNumber 返回用于標(biāo)識(shí)磁盤卷標(biāo)的十進(jìn)制序列號(hào)。
ShareName 返回指定驅(qū)動(dòng)器的網(wǎng)絡(luò)共享名
TotalSize 以字節(jié)為單位,返回驅(qū)動(dòng)器或網(wǎng)絡(luò)共享的總空間大小。
VolumeName 設(shè)置或返回指定驅(qū)動(dòng)器的卷標(biāo)名。