FSO 对象模型编程

 FSO 对象模型编程包括三项主要任务:

FSO 对象模型包含在一个称为 Scripting 的类型库中,此类型库位于 Scrrun.Dll 文件中。如果还没有引用此文件,请从“属性”菜单的“引用”对话框选择“Microsoft Scripting Runtime”项。然后就可以使用“对象浏览器”来查看其对象、集合、属性、方法、事件以及它的常数。

创建 FileSystemObject 对象

第一步是创建一个 FileSystemObject 对象以便进行处理。可以通过如下两种方法完成:

注意 第一种方法只在 Visual Basic 中有效,而第二种方法在 Visual Basic 或 VBScript 中都是可行的。

使用适当的方法

下一步就是使用该 FileSystemObject 对象的适当的方法。例如,如果想要创建一个新对象,既可以使用 CreateFolder 方法也可以使用 CreateTextFile 方法。(FSO 对象模型不支持创建或删除驱动器。)

如果想要删除对象,可以使用 FileSystemObject 对象的 DeleteFile 和 DeleteFolder 方法,或者 File 和 Folder 对象的 Delete 方法。

使用适当的方法,还可以复制、移动文件和文件夹。

请注意, FileSystemObject 对象模型中有一些功能是冗余的。例如,要复制一个文件,既可以使用 FileSystemObject 对象的 CopyFile 方法,也可以使用 File 对象的 Copy 方法。这两者的功能是完全相同的。两者同时存在以提供最大的编程灵活性。

访问已有的驱动器、文件和文件夹

要访问一个已有的驱动器、文件或文件夹,请使用 FileSystemObject 对象中相应的 "get" 方法:

例如:

Dim fso As New FileSystemObject, fil As File
Set fil = fso.GetFile("c:\test.txt")

但是,请注意,并不需要对新创建的对象使用"get" 方法,因为"create" 函数已经返回了一个句柄到新创建的对象。例如,如果使用 CreateFolder 方法创建了一个新的文件夹,就没有必要使用 GetFolder 方法来访问该对象的诸如名称、路径、大小等属性。只要给 CreateFolder 函数设置一个变量来获取新建文件夹的句柄,然后就可以访问其属性、方法和事件:

Private Sub Create_Folder()
   Dim fso As New FileSystemObject, fldr As Folder
   Set fldr = fso.CreateFolder("C:\MyTest")
   MsgBox "Created folder: " & fldr.Name
End Sub

访问对象的属性

一旦有了对象的句柄,就能够访问其属性。例如,假定您想要获得一个特定文件夹的名称。首先要创建该对象的一个实例,然后通过适当的方法(在本例中是 GetFolder 方法,因为该文件夹已经存在)得到其句柄:

Set fldr = fso.GetFolder("c:\")

现在有了一个 Folder 对象的句柄,您可以查看其 Name 属性:

Debug.Print "Folder name is: "; fldr.Name

如果想要找出一个文件的最新修改时间,可以使用如下的语法:

Dim fso As New FileSystemObject, fil As File
Set fil = fso.GetFile("c:\detlog.txt")  ' 获得要查询的 File 对象。
Debug.Print "File last modified: "; fil.DateLastModified ' 显示信息。