VB考試教程:文件系統(tǒng)對象(FileSystemObject)編程

字號(hào):

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