VBAFSO对象模型详解

上传人:yh****1 文档编号:272516751 上传时间:2022-04-02 格式:DOC 页数:8 大小:30KB
返回 下载 相关 举报
VBAFSO对象模型详解_第1页
第1页 / 共8页
VBAFSO对象模型详解_第2页
第2页 / 共8页
VBAFSO对象模型详解_第3页
第3页 / 共8页
VBAFSO对象模型详解_第4页
第4页 / 共8页
VBAFSO对象模型详解_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《VBAFSO对象模型详解》由会员分享,可在线阅读,更多相关《VBAFSO对象模型详解(8页珍藏版)》请在金锄头文库上搜索。

1、-VBA FSO对象模型详解 一、简介文件系统对象FSO的英文全称是File System Object ,这种对象模型提出了有别于传统的文件操作语句处理文件和文件夹的方法。通过采用object.method这种在面向对象编程中广泛使用的语法,将一系列操作文件和文件夹的动作通过调用对象本身的属性直接实现。FSO 对象模型不仅可以象使用传统文件操作语句那样实现文件的创立、改变、移动和删除,而且可以检测是否存在指定的文件夹,如果存在,则,这个文件夹又位于磁盘上的什么位置。更令人快乐的是FSO 对象模型还可以获取关于文件和文件夹的信息,如名称、创立日期或最近修改日期等以及当前系统中使用的驱动器的信息

2、,如驱动器的种类是CDROM还是可移动磁盘,当前磁盘的剩余空间还有多少。而以前要获取这些信息必须通过调用Windows API函数集中的相应函数才能实现。FSO对象模型包含在Scripting 类型库 (Scrrun.Dll)中,它同时包含了Drive、Folder、File、FileSystemObject和Te*tStream五个对象。其中Drive用来收集驱动器的信息,如可用磁盘空间或驱动器的类型;Folder用于创立、删除或移动文件夹,同时可以进展向系统查询文件夹的路径等操作;File的根本操作和Folder根本一样,所不同的是Files的操作主要是针对磁盘上的文件进展的;FileSy

3、stemObject是FSO对象模型中最主要对象,它提供了一套完整的可用于创立、删除文件和文件夹,收集驱动器、文件夹、文件相关信息的方法。需要注意的是,FSO对象模型提供的方法是冗余的,也就是说在实际使用中,FSO对象模型中包含的不同对象的不同方法进展的却是同样的操作,而且FileSystemObject对象的方法直接作用于其余对象,所以在后面的文章中并没有单独提到FileSystemObject对象,千万不要以为没有提到就不重要,事实上FileSystemObject对象在整个FSO对象模型中无处不在;最后的Te*tStream对象则是用来完成对文件的读写操作的。在初步了解了FSO对象模型之

4、后,下面我们通过实际的代码对不同的对象进展进一步的阐述。二、FSO对象模型的应用一创立FSO对象模型由于FSO对象包含在Scripting 类型库 (Scrrun.Dll)中,所以在使用前首先需要在在工程中引用这个文件,单击工程,引用,然后在引用对话框中选中Microsoft Scripting Runtime前的复选框,然后单击确定。要创立FSO对象可以采用两种方法,一种是将一个变量声明为FSO对象类型:Dim fsoTest As New FileSystemObject;另一种是通过CreateObject方法创立一个FSO 对象:Set fsoTest = CreateObject(S

5、cripting.FileSystemObject)。在实际使用中具体采用哪种声明方法,可根据个人的使用习惯而定。完成了FSO对象模型的创立之后,就可以利用创立的对象模型的方法访问下属各个对象的属性来获取所需信息或进展相关操作了,具体的方法在下面结合各个对象分别讲述。二Drive对象上面已经提到Drive对象是用来获取当前系统中各个驱动器的信息的。由于Drive对象没有方法,其应用都是通过属性表现出来的,所以我们必须熟悉Drive对象的属性:AvailableSpace:返回在指定的驱动器或网络共享上的用户可用的空间容量。DriveLetter :返回*个指定本地驱动器或网络驱动器的字母,这个

6、属性是只读的。DriveType:返回指定驱动器的磁盘类型。FileSystem: 返回指定驱动器使用的文件系统类型。FreeSpace:返回指定驱动器上或共享驱动器可用的磁盘空间,这个属性是只读的。IsReady:确定指定的驱动器是否准备好。Path :返回指定文件、文件夹、或驱动器的路径。RootFolder :返回一个 Folder 对象,该对象表示一个指定驱动器的根文件夹。只读属性。SerialNumber:返回用于唯一标识磁盘卷标的十进制序列号。ShareName:返回指定驱动器的网络共享名TotalSize :以字节为单位,返回驱动器或网络共享的总空间大小。VolumeName :

7、设置或返回指定驱动器的卷标名。从上面的属性可以看到Drive对象根本上包含了日常操作所需的全部的驱动器信息,因此在使用中是非常方便的。下面通过一个实例讲述Drive对象的使用。首先在VB中建立一个工程,然后添加一个命令按钮,将其Caption设置为TestDrive,然后在click事件中参加以下代码:Dim fsoTest As New FileSystemObject Dim drv1 As Drive, sReturn As StringSet drv1 = fsoTest.GetDrive(C:)sReturn = Drive C: vbCrLfsReturn = sReturn Vo

8、lumeName drv1.VolumeName vbCrLfsReturn = sReturn Total Space: FormatNumber(drv1.TotalSize / 1024, 0)sReturn = sReturn Kb vbCrLfsReturn = sReturn Free Space: FormatNumber(drv1.FreeSpace / 1024, 0)sReturn = sReturn Kb vbCrLfsReturn = sReturn FileSystem: drv1.FileSystem vbCrLfMsgBo* sReturn其中GetDrive方法

9、返回一个与指定路径中的驱动器相对应的 Drive 对象。该方法的语法格式为object.GetDrive drivespec,object是一个FSO对象的名称,drivespec用于指定驱动器的名称。按F5运行上述代码,按下TestDrive按钮就会弹出一个消息框显示C盘的信息。三Folder对象在FSO 对象模型中,提供了丰富的有关文件夹操作的方法,这些方法分别是:FileSystemObject对象有关文件夹的方法:CreateFolder :创立一个文件夹 。DeleteFolder:删除一个文件夹 。MoveFolder :移动一个文件夹 。CopyFolder:复制一个文件夹 。F

10、olderE*ists: 查找一个文件夹是否在驱动器上 。GetFolder :获得已有Folder对象的一个实例 。GetParentFolderName: 找出一个文件夹的父文件夹的名称。GetSpecialFolder: 找出系统文件夹的路径。Folder对象的方法:Delete :创立一个文件夹 。Move :移动一个文件夹 。Copy:复制一个文件夹。Name:检索文件夹的名称。在此需要强调一点,前面我们曾经提到过FSO对象模型包含的方法是冗余的,所以Folder对象的Delete、Move、Copy方法和FileSystemObject对象的DeleteFolder、MoveFol

11、der、CopyFolder方法实际上是一样的,因此在实际使用中可以任选其中的一种。和Drive对象一样,下面通过实例演示Folder对象的应用。在VB下新建一个工程,然后在上面添加三个命令按钮,然后在Form1的通用局部参加以下代码:Option E*plicitDim fsoTest As New FileSystemObjectDim folder1 As Folder并且分别在三个命令按钮的click事件输入以下代码:Private Sub CmdCreate_Click() 获取 Folder 对象。Set folder1 = fsoTest.GetFolder(C:)创立文件夹fs

12、oTest.CreateFolder (C:Test)MsgBo* folder C:Test has createdEnd SubPrivate Sub CmdDelete_Click() 获取 Drive 对象。Set folder1 = fsoTest.GetFolder(C:)删除文件夹 fsoTest.DeleteFolder (C:Test)MsgBo*folder C:Test has deletedEnd SubPrivate Sub CmdGetPro_Click()获取文件夹的有关信息 Dim sReturn As StringSet folder1 = fsoTest.G

13、etFolder(C:Windows)sReturn = The folders Attributes is folder1.Attributes vbCrLf获取最近一次访问的时间sReturn = sReturn The folders last access time is folder1.DateLastAccessed vbCrLf获取最后一次修改的时间sReturn = sReturn The folders last modify time is folder1.DateLastModified vbCrLf获取文件夹的大小sReturn = sReturn The folder

14、s size is FormatNumber(folder1.Size / 1024, 0)sReturn = sReturn Kb vbCrLf判断文件或文件夹类型sReturn = sReturn The type is folder1.Type vbCrLfMsgBo* sReturnEnd Sub上述代码中提到的CreateFolder方法的语法形式为object.CreateFolder(foldername)。foldername指定了要创立的文件夹的名称,而DeleteFolder方法的语法形式为object.DeleteFolder folderspec,force,其中,fo

15、lderspec用来指定要删除的文件夹的名称,force是一个可选的布尔型参数,如果希望删除只读属性的文件夹则将该值设为TRUE,默认为FALSE。至于代码中用到的 Folder 对象的属性限于篇幅,就不详细介绍了,读者可参考VB文档中的相关容。四File对象和Te*tStream对象由于有关File对象的复制,删除,移动等操作和Folder对象类似,所以这局部容就不再重复。这里主要讲述利用File对象和Te*tStream对象操作文本文件。通常对文本文件的操作包括在文本文件中创立数据,在文本文件中添加数据,删除文本文件的数据等操作。这些操作都可以通过File对象和FileSystemObject对象的相关方法完成。不过在使用之前,首先要创立一个文本文件,这可以通过三种方法完成。一种方法是使用FileSystemObject对象的 CreateTe*tFile 方法。要创立一个空文本文件,可以用以下语句:Dim fsoTest As New FileSystemObject, fil1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号