文章目录
1、什么是Scripting.FileSystemObject对象
- FileSystemObject(文件系统对象,简称FSO),提供了在windows中操作本地文件和文件夹的功能。不管你是使用VC、VB等编程语言,还是使用VBScript(网页脚本,限IE浏览器)、VBA(Office脚本)等脚本语言。
- FSO 对象模型可以实现文件(夹)的创建、改变、移动和删除等常见操作,也可以获取文件(夹)的名称、大小、属性、创建日期或最近修改日期等信息,还可以检测是否存在指定的文件夹。通过FSO 对象模型可以获取当前系统驱动器信息,如驱动器的种类(CD-ROM还是可移动磁盘)、磁盘剩余空间等等。
- FSO对象模型包含在Scripting 类型库 (Scrrun.Dll)中,它同时包含了FileSystemObject、Drive、Folder、File和TextStream五个对象。其中FileSystemObject是顶层对象;Drive用来收集驱动器的信息;Folder用于文件夹的创建、删除、移动、复制、查询路径等操作;File用于文件的创建、删除、移动、复制;TextStream对象则是用来完成对文件的读写操作的。
2、创建FSO对象的两种方法
2.1、前期绑定
先引用“Microsoft Scripting Runtime”,然后将一个变量声明为FSO对象类型:
Dim objFso As New FileSystemObject
2.2、后期绑定
直接:Set objFso = CreateObject(“Scripting.FileSystemObject")。
2.3、优缺点比较
第一种方式的优点是输入FSO的对象时会给出提示,缺点是需要绑定库;
第二种方式的优缺点反之。
3、Drives
- 返回计算机上关于所有Drive对象的集。
3.1、Count
- 返回集合中Drive对象的数目,Long类型。
Option Explicit
Set objFSO = CreateObject("Scripting.FileSystemObject")
'返回计算机上驱动器数量
MsgBox objFSO.Drives.Count
MsgBox objFSO.Drives.Item("c") '返c:
MsgBox objFSO.Drives.Item("c:") '返c:
MsgBox objFSO.Drives.Item("c:\") '返c:
3.2、Item
- oDrives.Item(Key)
- 返回一个键为Key(驱动器名)的Drive对象。Drive对象集合不是普通的集合,因此不能使用驱动器的索引值(在集合中的位置序号),否则将产生运行时错误“无效的过程调用或参数”。
- 由于读取一个不存在的驱动器的Drive对象会产生运行时错误,因此最好先调用FileSystemObject对象的DriveExists方法。
Option Explicit
Dim objFso
Dim objDrives
Dim objDrive
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objDrives=objFso.Drives
Set objDrive=objDrives.Item("C")
msgbox objDrive.DriveType
Set objDrive=Nothing
Set objDrives=Nothing
Set objFso=Nothing
4、Drive对象
- Drive对象可以用于访问计算机或服务器上指定的驱动器的属性。
- Drive对象不支持任何方法。
- Drive对象的所有属性都是只读的。
4.1、AvailableSpace属性
返回磁盘可用的空间,以字节表示,Variant类型。
4.2、FreeSpace属性
与AvailableSpace属性相同,返回磁盘上的可用空间,Variant类型。
4.3、DriveLetter属性
返回驱动器盘符,不带冒号,String类型。
4.4、DriveType属性
- 返回驱动器类型,DriveType常量:
- 0代表未知,
- 1代表可移动,
- 2代表固定,
- 3代表网络,
- 4代表CD-ROM,
- 5代表RAM磁盘。
Option Explicit
Dim objFso
Dim objDrives
Dim objDrive
const CDROM=4
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objDrives=objFso.Drives
for Each objDrive in objDrives
if objDrive.DriveType=CDROM then
msgbox objDrive.DriveLetter+"盘是CD-ROM驱动器"
end if
next
Set objDrive=Nothing
Set objDrives=Nothing
Set objFso=Nothing
4.5、FileSystem属性
返回所安装的文件系统,例如FAT、NTFS或CDFS,String类型。
4.6、IsReady属性
- Boolean类型。
- 对硬盘而言,应该总是返回True。
- 对于可移动驱动器而言,如果插入了合适的媒介(例如CD-ROM盘)并且可以访问,则返回True。
Function IsCDROMReady(strDriveLetter)
Dim objFso,objDrive
Set objFso=CreateObject("Scripting.FileSystemObject")
Set objDrive=objFso.GetDrive(strDriveLetter)
IsCDROMReady=(objDrive.DriveType=4) And objDrive.IsReady=True
End Function
4.7、Path属性
返回根文件夹的路径,驱动器名后紧跟一个冒号(例如C:),String类型。这是Drive对象的默认属性。
4.8、RootFolder属性
返回表示根文件夹的Folder对象,可以以此访问文件系统的其余部分。
4.9、SerialNumber属性
返回驱动器系列号,Long类型。
4.10、ShareName属性
用于网络共享,指计算机的网络共享名(例如\NTSERV1\TestWork),String类型。
4.11、TotalSize属性
返回驱动器总容量,以字节表示,Variant类型。
4.12、VolumeName属性
指驱动器卷标名(如果指定了驱动器卷标的话),String类型。