在VB中使用文件对象
文章作者 100test 发表时间 2008:01:25 09:41:13
来源 100Test.Com百考试题网
自从Visual Basic第一次发布到现在,它的大部分主要的特性大都被修改了不下一次。但文件操作部分却是个例外。在最原始的BasiC语言中,文件就是用文件号(file number)来读写的。用一个数字来操作文件,或许者多少有一点晦涩难懂,这也令大多数的初学者感到不习惯和难以理解。
随着Visual Basic Scripting Edition2.0版本的发布,微软提供了一种全新的文件操作方法——文件系统对象(FileSystemObject)。用对象编程,这正是开发者们所希望用到。这个对象,包括一些其他的相关对象,封装了所有的文件操作。这篇文章将向你介绍这些对象,并且展示如何利用它们来编程。要使用这些对象,在VB的应用程序中就必须引用Microsoft Scripting Runtime (C:\Windows\System\SCRRUN.DLL)对象库。但是如果是为Internet Explore 编写VBScript,直接使用就可以了。下面是这些对象的概要:
* Drive - 代表一个单独的驱动器,可以是软驱,硬盘,或者是光驱等其他存贮介质。
* Drives - 一个集合对象,包括系统中所有的驱动器。
* File - 代表系统中的一个磁盘文件。
* Files - 集合对象,是一些文件的集合。典型的是代表一个目录下的所有文件。
* FileSystemObject - 代表系统中整个文件系统的对象。包括所有驱动器,目录和文件。
* Folder - 代表一个目录,可以是本地的,也可以是远程目录。
* Folders - 一些目录的集合体。
* TextStream - 文本流对象,代表一个用来读写的打开的文件。
想得到系统中所有的驱动器的信息,可以用下面的这段代码来实现。
Sub Main()
Dim objFSO As New Scripting.FileSystemObject
Dim drvLoop As Scripting.Drive
For Each drvLoop In objFSO.Drives
Debug.Print drvLoop.DriveLetter &. ":\"
If drvLoop.DriveType = Fixed _
Or drvLoop.IsReady Then
Debug.Print " Total size: " _
&. Format$(drvLoop.TotalSize / (1024 ^ 2), "#0.00 Mb")
Debug.Print " Free space: " _
&. Format$(drvLoop.FreeSpace / (1024 ^ 2), "#0.00 Mb")
Debug.Print " Volume Label: " &. drvLoop.VolumeName
Else
Debug.Print " Disk information unavailable"
End If
Next drvLoop
Set objFSO = Nothing
End Sub
在试图存取像软盘,光盘这些可移动介质驱动器,特别是存取笔记本电脑的可交换驱动器的时候要注意:Windows总是认为驱动器是存在的,而不管是否真的有盘片在里面。这时候可以用Drive对象IsReady对象来检测驱动器是否准备好。否则可能造成VB应用程序的死锁。