FSO对象模型在VBA中的应用
2024-06-22 11:43:18阅读量:36 字体:大 中 小
一、简介
文件系统对象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 FileSystemObject
Dim drv1 As Drive, sReturn As String
Set drv1 = fsoTest.GetDrive(“C:")
sReturn = “Drive " & “C:" & vbCrLf
sReturn = sReturn & “VolumeName" & drv1.VolumeName & vbCrLf
sReturn = sReturn & “Total Space: " & FormatNumber(drv1.TotalSize / 1024, 0)
sReturn = sReturn & “Kb" & vbCrLf
sReturn = sReturn & “Free Space: " & FormatNumber(drv1.FreeSpace / 1024, 0)
sReturn = sReturn &“Kb" & vbCrLf
sReturn = sReturn &“FileSystem:" & drv1.FileSystem & vbCrLf
MsgBox 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下新建一个工程,然后在上面添加三个命令按钮,然后在Form1的通用部分加入以下代码:
Option Explicit
Dim fsoTest As New FileSystemObject
Dim folder1 As Folder
并且分别在三个命令按钮的click事件输入以下代码:
Private Sub CmdCreate_Click()
’ 获取 Folder 对象。
Set folder1 = fsoTest.GetFolder(“C:")
’创建文件夹
fsoTest.CreateFolder (“C:Test")
MsgBox “folder C:Test has created"
End Sub
Private Sub CmdDelete_Click()
’ 获取 Drive 对象。
Set folder1 = fsoTest.GetFolder(“C:")
’删除文件夹
fsoTest.DeleteFolder (“C:Test")
MsgBox“folder C:Test has deleted"
End Sub
Private Sub CmdGetPro_Click()
’获取文件夹的有关信息
Dim sReturn As String
Set folder1 = fsoTest.GetFolder(“C:Windows")
’sReturn = “The folder’s Attributes is " & folder1.Attributes & vbCrLf
’获取最近一次访问的时间
sReturn = sReturn & “The folder’s last access time is " & folder1.DateLastAccessed & vbCrLf
’获取最后一次修改的时间
sReturn = sReturn & “The folder’s last modify time is " & folder1.DateLastModified & vbCrLf
’获取文件夹的大小
sReturn = sReturn & “The folder’s size is " & FormatNumber(folder1.Size / 1024, 0)
sReturn = sReturn & “Kb" & vbCrLf
’判断文件或文件夹类型
sReturn = sReturn & “The type is " & folder1.Type & vbCrLf
MsgBox sReturn
End Sub
上述代码中提到的CreateFolder方法的语法形式为object.CreateFolder(foldername)。foldername指定了要创建的文件夹的名称,而DeleteFolder方法的语法形式为object.DeleteFolder folderspec[,force],其中,folderspec用来指定要删除的文件夹的名称,force是一个可选的布尔型参数,如果希望删除只读属性的文件夹则将该值设为TRUE,默认为FALSE。至于代码中用到的 Folder 对象的属性限于篇幅,就不详细介绍了,读者可参考VB文档中的相关内容。
(四)File对象和TextStream对象
由于有关File对象的复制,删除,移动等操作和Folder对象类似,所以这部分内容就不再重复。这里主要讲述利用File对象和TextStream对象操作文本文件。
通常对文本文件的操作包括在文本文件中创建数据,在文本文件中添加数据,删除文本文件的数据等操作。这些操作都可以通过File对象和FileSystemObject对象的相关方法完成。不过在使用之前,首先要创建一个文本文件,这可以通过三种方法完成。一种方法是使用FileSystemObject对象的 CreateTextFile 方法。要创建一个空文本文件,可以用以下语句:
Dim fsoTest As New FileSystemObject, fil1 As File
Set fil 1= fsoTest.CreateTextFile(“c:testfile.txt", True)
第二种方法是使用 FileSystemObject 对象带 ForWriting 标志设置的 OpenTextFile 方法,
以上就是FSO对象模型在VBA中的应用的全部内容,望能这篇FSO对象模型在VBA中的应用可以帮助您解决问题,能够解决大家的实际问题是谜爱阁生活网一直努力的方向和目标。
免责声明:
本文《FSO对象模型在VBA中的应用》版权归原作者所有,内容不代表本站立场!
如本文内容影响到您的合法权益(含文章中内容、图片等),请及时联系本站,我们会及时删除处理。
推荐阅读

ipad一直语音播报触屏滑不了
ipad一直语音播报触屏滑不了是因为ipad开启了旁白的功能,需要去设置内把该功能进行关闭,操作步骤如下: ipad一直语音播报触屏滑不了 1、打开ipad的设置,点击辅助功能”按钮,进入...
阅读: 794

苹果下载记录永久删除
苹果手机的下载记录是不能删除的,但是可以设置隐藏起来不显示在已购项目中,操作方法如下: 苹果下载记录永久删除 1、打开手机的App Store,点击右上角的苹果id头像,进入账户的页面。 2、点击已...
阅读: 738

vivos12分屏模式怎么开启
vivos12手机的系统自带有分屏的功能,有需要的用户可以开启手机的分屏模式,具体的操作步骤如下: vivos12分屏模式怎么开启 1、打开手机,用手指从手机屏幕的底部向上滑动,这一过程中手指不要松开...
阅读: 783

苹果睡眠起床闹钟删不掉
苹果手机系统有一个睡眠起床闹钟的功能,这个闹钟是无法删除的,但是可以进行关闭,操作步骤如下: 苹果睡眠起床闹钟删不掉 1、打开手机的时钟app,进入下方的闹钟”界面。 2、点击起床闹钟的...
阅读: 671

怎么把小红书的视频提取出来
小红书的视频可以通过保存视频的方式提取到手机上,小红书通过保存提取视频的具体步骤如下: 怎么把小红书的视频提取出来 1、打开小红书app,然后选择需要提取的视频。 2、选择需要提取的视频后,选择右上...
阅读: 1714

抖音可以注销了重新注册吗
抖音注销了可以重新注册,抖音账号注销后,一般需要两个星期过后才可以重新注册账号。具体的操作方式如下: 抖音可以注销了重新注册吗 1、打开抖音,点击进入我”的界面。 2、进入我&rdquo...
阅读: 708
热门文章
1.剪映贴纸怎么跟着遮挡部位走
- 1

- 剪映贴纸怎么跟着遮挡部位走
- 2022-12-27
- 1
2.没有京东白条怎么分期买手机
- 2

- 没有京东白条怎么分期买手机
- 2022-12-27
- 2
3.换新手机微信登录不上去怎么办
- 3

- 换新手机微信登录不上去怎么办
- 2022-12-27
- 3
4.超级QQ秀怎么删掉
- 4

- 超级QQ秀怎么删掉
- 2022-12-28
- 4
5.qq小屋从哪里进
- 5

- qq小屋从哪里进
- 2022-12-28
- 5
6.怎么知道对方关闭了活跃状态
- 6

- 怎么知道对方关闭了活跃状态
- 2022-12-28
- 6
7.上海公交车微信扫码支付步骤
- 7

- 上海公交车微信扫码支付步骤
- 2022-12-28
- 7
8.支付宝怎么设置花呗收款开关
- 8

- 支付宝怎么设置花呗收款开关
- 2022-12-28
- 8
9.剪映怎么局部变色
- 9

- 剪映怎么局部变色
- 2022-12-28
- 9
10.微利贷怎么申请开通
- 10

- 微利贷怎么申请开通
- 2022-12-28
- 10
最近更新

酷狗音乐中使用蝰蛇音效制作工具的具体操作方法
2024-11-11

win7电脑中出现声音图标不见了的具体解决方法
2024-11-11

车到哪app的详细软件介绍
2024-11-11

小米9se中查看序列号的具体操作方法
2024-11-11

迅雷中使用FTP探测器的详细操作方法
2024-11-11

ppt制作出小荷才露尖尖角动画场景的具体操作步骤
2024-11-11
