VBAFSO对象模型详解

上传人:ba****u 文档编号:184022982 上传时间:2023-02-01 格式:DOCX 页数:13 大小:17.62KB
返回 下载 相关 举报
VBAFSO对象模型详解_第1页
第1页 / 共13页
VBAFSO对象模型详解_第2页
第2页 / 共13页
VBAFSO对象模型详解_第3页
第3页 / 共13页
点击查看更多>>
资源描述
VBA FSO对象模型详解“、简介文件系统对象FSO的英文全称是 File System Object ,这种对象模型提出了有别于传统的文件操作语句处理文件和文件夹的方法。通过 采用object.method这种在面向对象编程中广泛使用的语法,将一系 列操作文件和文件夹的动作通过调用对象本身的属性直接实现。FSO对象模型不仅可以象使用传统文件操作语句那样实现文件的创建、改变、移动和删除,而且可以检测是否存在指定的文件夹,如果 存在,那么,这个文件夹又位于磁盘上的什么位置。更令人高兴的是 FSO对象模型还可以获取关于文件和文件夹的信息,如名称、创建日期或最近修改日期等以及当前系统中使用的驱动器的信息,如驱动 器的种类是CD -ROM还是可移动磁盘,当前磁盘的剩余空间还有 多少。而以前要获取这些信息必须通过调用Windows API函数集中的相应函数才能实现。FSO对象模型包含在Scripting类型库(Scrrun.Dll)中,它同时包含了Drive、Folder、File、FileSystemObject 和 TextStream 五个对象。其 中Drive用来收集驱动器的信息,如可用磁盘空间或驱动器的类型;Folder用于创建、删除或移动文件夹,同时可以进行向系统查询文件夹的路径等操作;File的基本操作和Folder基本相同,所不同的是Files的操作主要是针对磁盘上的文件进行的;FileSystemObject 是FSO对象模型中最主要对象,它提供了一套完整的可用于创建、删除文件和文件夹,收集驱动器、文件夹、文件相关信息的方法。需要注意的是,FSO对象模型提供的方法是冗余的,也就是说在实际使用 中,FSO对象模型中包含的不同对象的不同方法进行的却是同样的操 作,而且FileSystemObject对象的方法直接作用于其余对象,所以在 后面的文章中并没有单独提到FileSystemObject对象,千万不要以为 没有提到就不重要,事实上FileSystemObject对象在整个FSO对象模 型中无处不在;最后的TextStream对象则是用来完成对文件的读写 操作的。在初步了解了 FSO对象模型之后,下面我们通过实际的代码对不同的对象进行进一步的阐述。二、FSO对象模型的应用(一)创建FSO对象模型由于FSO对象包含在Scripting类型库(Scrrun.Dll)中,所以在使用前首 先需要在在工程中引用这个文件,单击“工程”,“引用”,然后 在“引用”对话框中选中“Microsoft Scripting Runtime 前的”复选框, 然后单击“确定”。要创建FSO对象可以采用两种方法,一种是将一个变量声明为FSO 对象类型:Dim fsoTest As New FileSystemObject ;另一种是通过CreateObject 方法创建一个 FSO 对象:Set fsoTest = CreateObject( Scripting.FileSystemObject)。在实际使用中具体采 用哪种声明方法,可根据个人的使用习惯而定。具体完成了 FSO对象模型的创建之后,就可以利用创建的对象模型的方法访问下属各个对象的属性来获取所需信息或进行相关操作了,的方法在下面结合各个对象分别讲述。(二)Drive 对象上面已经提到Drive对象是用来获取当前系统中各个驱动器的信息 的。由于Drive对象没有方法,其应用都是通过属性表现出来的,所 以我们必须熟悉Drive对象的属性:AvailableSpace :返回在指定的驱动器或网络共享上的用户可用的空 间容量。DriveLetter :返回某个指定本地驱动器或网络驱动器的字母,这个 属性是只读的。DriveType :返回指定驱动器的磁盘类型。FileSystem :返回指定驱动器使用的文件系统类型。FreeSpace :返回指定驱动器上或共享驱动器可用的磁盘空间,这个 属性是只读的。IsReady :确定指定的驱动器是否准备好。Path :返回指定文件、文件夹、或驱动器的路径。RootFolder :返回一个Folder对象,该对象表示一个指定驱动器 的根文件夹。只读属性。SerialNumber :返回用于唯一标识磁盘卷标的十进制序列号。ShareName :返回指定驱动器的网络共享名TotalSize :以字节为单位,返回驱动器或网络共享的总空间大小。VolumeName :设置或返回指定驱动器的卷标名。从上面的属性可以看到Drive对象基本上包含了日常操作所需的全部的驱动器信息,因此在使用中是非常方便的。下面通过一个实例讲述Drive对象的使用。首先在VB中建立一个工程,然后添加一个命令按钮,将其Caption设置为“TestDrive,”然后在click事件中加入以下代码:Dim fsoTest As New FileSystemObjectDim drv1 As Drive, sReturn As StringSet drv1 = fsoTest.GetDrive( ) C:sReturn =Drive &”C: & vbCrLfsReturn = sReturn & VolumeName & 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 & vbCrLfMsgBox sReturn其中GetDrive方法返回一个与指定路径中的驱动器相对应的Drive对象。该方法的语法格式为object.GetDrive drivespec ,object是一个FSO对象的名称,drivespec用于指定驱动器的名称。按F5运行上述代码,按下 TestDrive按钮就会弹出一个消息框显示C盘的信息。(三)Folder对象在FSO对象模型中,提供了丰富的有关文件夹操作的方法,这些方 法分别是:FileSystemObject对象有关文件夹的方法:CreateFolder:创建一个文件夹。DeleteFolder :删除一个文件夹 。MoveFolder :移动一个文件夹 。CopyFolder :复制一个文件夹。FolderExists :查找一个文件夹是否在驱动器上。GetFolder :获得已有Folder对象的一个实例。GetParentFolderName : 找出一个文件夹的父文件夹的名称。GetSpecialFolder : 找出系统文件夹的路径。Folder对象的方法:Delete :创建一个文件夹 。Move :移动一个文件夹。Copy :复制一个文件夹。Name :检索文件夹的名称。在此需要强调一点,前面我们曾经提到过FSO对象模型包含的方法是 冗余的,所以Folder对象的Delete、Move、Copy方法和 FileSystemObject 对象的 DeleteFolder、MoveFolder、CopyFolder 方法实际上是相同的,因此在实际使用中可以任选其中的一种。和Drive对象一样,下面通过实例演示Folder对象的应用。在VB下 新建一个工程,然后在上面添加三个命令按钮,然后在Forml的通用 部分加入以下代码:Option ExplicitDim fsoTest As New FileSystemObjectDim folder1 As Folder并且分别在三个命令按钮的click事件输入以下代码:Private Sub CmdCreate_Click() ,获取Folder对象。“C:)Set folder1 = fsoTest.GetFolder( 创建文件夹fsoTest.CreateFolder (Test) “C:MsgBox “ folder C:Test has createdEnd SubPrivate Sub CmdDelete_Click() ,获取Drive对象。“C:)Set folder1 = fsoTest .GetFolder(删除文件夹fsoTest.DeleteFolder (Test) “C:MsgBox “folder C:Test has deletedEnd SubPrivate Sub CmdGetPro_Click()获取文件夹的有关信息Dim sReturn As StringSet folderl = fsoTest.GetFolder(Windows) C: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 folders size is &FormatNumber(folder1.Size / 1024, 0) sReturn =sReturn & Kb& vbCrLf判断文件或文件夹类型sReturn = sReturn & The type is & folder1.Type & vbCrLfMsgBox sReturnEnd Sub上述代码中提到的CreateFolder方法的语法形式为object.CreateFolder(foldername) 。foldername 指定了要创建的文件夹的名称,而 DeleteFolder 方法的语法形式为 object.DeleteFolderfolderspec,force,其中,folderspec用来指定要删除的文件夹的名 称,force是一个可选的布尔型参数,如果希望删除只读属性的文件 夹则将该值设为TRUE,默认为FALSE。至于代码中用到的Folder对象的属性限于篇幅,就不详细介绍了,读者可参考 VB文档中的相关内容。(四)File对象和TextStream 对象由于有关File对象的复制,删除,移动等操作和Folder对象类似,所以这部分内容就不再重复。这里主要讲述利用File对象和TextStream对象操作文本文件。通常对文本文件的操作包括在文本文件中创建数据,在文本文件中添 加数据,删除文本文件的数据等操作。这些操作都可以通过File对象和FileSystemObject对象的相关方法完成。不过在使用之前,首先 要创建一个文本文件,这可以通过三种方法完成。一种方法是使用FileSystemObject 对象的CreateTextFile方法。要创建一个空文本文件,可以用以下语句:Dim fsoTest As New FileSystemObject, fil1 As FileSet fil 1= fsoTest.CreateTextFile( testfile “.c:txt”, True)第二种方法是使用 FileSystemObject 对象带ForWriting 标志设置 的 OpenTextFile 方法,Dim fsoTest As New FileSystemObject, ts1 As New TextStreamSet ts1 = fsoTest.OpenTex tFile( testfilec:.txt”, ForWriting)第三种方法是使用File对象的带ForWriting标志设置的OpenAsTextStream方法:Dim fsoTest As
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!