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

字號:

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