请注意,FileSystemObject 对象模型中有一些功能是冗余的。例如,要复制一个文件,既可以使用 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")
但是,请注意,并不需要对新创建的对象使用"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: " & https://www.wendangku.net/doc/3218644855.html,
End Sub
(4)访问对象的属性
一旦有了对象的句柄,就能够访问其属性。例如,假定想要获得一个特定文件夹的名称。首先要创建该对象的一个实例,然后通过适当的方法(在本例中是 GetFolder 方法,因为该文件夹已经存在)得到其句柄:
Set fldr = fso.GetFolder("c:\")
现在有了一个 Folder 对象的句柄,可以查看其 Name 属性:
Debug.Print "Folder name is: "; https://www.wendangku.net/doc/3218644855.html,
如果想要找出一个文件的最新修改时间,可以使用如下的语法:
Dim fso As New FileSystemObject, fil As File
Set fil = fso.GetFile("c:\detlog.txt") '获得要查询的 File 对象。
Debug.Print "File last modified: "; fil.DateLastModified '打印信息。
(5)使用驱动器和文件夹
可以在程序中使用 FSO 对象模型来处理驱动器和文件夹,如同在“Windows资源管理器”中能进行的交互方式一样。可以复制和移动文件夹,获得驱动器和文件夹的信息,等等。
1)获得驱动器的信息
Drive 对象允许获得一个系统的各个驱动器的信息,这些驱动器可以是物理的,也可以是位于网络上的。通过该对象的属性可以获得下列信息:
*
以字节表示的驱动器总空间 (TotalSize 属性)
*
以字节表示的驱动器可用空间 (AvailableSpace 或 FreeSpace 属性)
*
为驱动器指定的字母号 (DriveLetter 属性)
*
驱动器类型,诸如可移动的、固定的、网络、CD-ROM、或者 RAM 盘(DriveType 属性)
*
驱动器序列号 (SerialNumber 属性)
*
驱动器使用的文件系统类型,诸如 FAT、 FAT32、 NTFS等等 (FileSystem属性)
*
驱动器是否可用 (IsReady 属性)
*
共享和/或卷标的名称 (ShareName 和 VolumeName 属性)
*
驱动器的路径或根文件夹 (Path 和 RootFolder 属性)
2)Drive 对象用法示例
下列示例说明了如何使用 Drive 对象来收集有关驱动器的信息。请记住,在下面的代码中并没有对一个实际 Drive 对象的引用;而是使用 GetDrive方法来获得一个对已有 Drive 对象(本例中就是 drv)的引用:
Private Sub Command3_Click()
Dim fso As New FileSystemObject, drv As Drive, s As String
Set drv = fso.GetDrive(fso.GetDriveName("c:"))