庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>VB专区>编程技巧>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

VB6中的FSO对象模型

 作者:倪秉书    日期:2005-8-4 11:35:10
字号选择〖 〗/ 双击滚屏 单击停止   
在编程中,我们经常需要对文件系统中的驱动器、文件夹和文件进行处理,比如收集驱动器的相关信息;创建、添加、移动或删除文件夹和文件等。在VB6中新提供了一套称为FSO(File System Object)对象模型来对文件系统进行访问处理。该模型提供了一个基于对象的工具,通过它所提供的一系列属性和方法,我们可以在应用程序中更简单、灵活地对文件系统进行各种操作。

   一、FSO简介

   FSO对象模型包含以下几种对象:

   Drive对象:允许收集系统物理或通过LAN与系统逻辑连接的硬盘、CD-ROM等驱动器的可用空间、共享名等信息。

   Folder对象:允许创建、删除或移动文件夹,并向系统查询文件夹的名称、路径等。

   Files对象:允许创建、删除或移动文件,并向系统查询文件的名称、路径等。

   TextStream对象:允许创建和读写文本文件。

   FileSystemObject对象:提供一整套用于驱动器、文件夹和文件操作的方法,在功能上可以把它看作是上面几个对象的集合并且经常与它们配合使用。与该对象相关联的很多方法重复了前面四个对象中的方法,因此我们既可以通过FileSystemObject对象来对驱动器、文件夹和文件进行大多数操作,也可以通过对应的驱动器、文件夹或文件对象对这些组件进行操作。FSO模型通过两种方法实现对同一对象的操作,其操作效果是相同的,提供这种冗余功能的目的是为了实现最大的编程灵活性。

   FSO对象模型包含在一个称为Scripting的类型库中,此类型库位于Scrrun.dll文件中,可从“工程”选单的“引用”对话框中选择“Microsoft Scripting Runtime”项来引用此文件。

   创建一个FileSystemObject对象,可以通过如下两种方法来完成:1将一个变量声明为FileSystemObject对象类型:Dim fso As New FileSystemObject;2使用CreateObject方法来创建:Set fso=CreateObject(″Scripting.FileSystemObject″)。

   二、对驱动器的操作

   对驱动器的操作主要通过Drive对象并配合FileSystemObject对象,FSO不支持进行创建或删除驱动器的操作,而只允许收集关于系统所用驱动器的信息。通过该对象的属性可以获得下列信息:以字节表示的驱动器可用空间(AvailableSpace或FreeSpace);为驱动器指定的字母号(DriveLetter);驱动器类型(DriveType);驱动器使用的文件系统类型,诸如FAT、FAT32、NTFS等(FileSystem);驱动器是否可用(IsReady);驱动器的路径或根文件夹(Path和RootFolder);驱动器序列号(SerialNumber);共享名或卷标名(ShareName和VolumeName);以字节表示的驱动器总空间(TotalSize)。下面一例说明了如何收集有关驱动器的信息:

   Private Sub Command1—Click()

   Dim fso As New FileSystemObject, drv As Drive, str As String

   Set drv=fso.GetDrive(fso.GetDriveName(″c:″))

   Debug.Print ″Total Space: ″ & FormatNumber(drv.TotalSize / 1024, 0) & ″Kb″

   Debug.Print ″Free Space: ″ & FormatNumber(drv.FreeSpace / 1024, 0) & ″Kb″

   End Sub

   三、对文件夹的操作

   Folder对象允许通过所提供的方法来复制(Copy)、删除(Delete)或移动(Move)文件夹,并通过其属性向系统查询其名称(Name)、路径(Path)以及创建日期(DateCreated)等。FileSystemObject 对象对文件夹的操作方法有创建(CreateFolder)、复制(CopyFolder)、移动(MoveFolder)和删除(DeleteFolder)。在进行上述操作之前,首先要获得该文件夹的访问句柄(GetFolder)。下例说明了如何对文件夹进行操作:

   Private Sub Command2—Click()

   Dim fso As New FileSystemObject, fldr As Folder

   Set fldr=fso.GetFolder(″c:″)    

   ′获得当前文件夹的访问句柄

   Debug.Print ″Parent folder name is: ″ & fldr

   ′打印文件夹名

   Debug.Print ″Contained on drive ″ & fldr.Drive   ′打印驱动器名

   fso.CreateFolder (″c:\Temp″)

   ′用FileSystemObject对象创建一个新的文件夹

   fso.DeleteFolder (″c:\Temp″)  

   ′删除新建的文件夹

   End Sub

   访问一个对象,要首先用“Get”方法获得该对象的访问句柄,但如果是用“Create”函数新创建一个对象, 函数会返回一个句柄到新创建的对象,这时只要设置一个变量来获取该句柄即可,不必再用“Get”方法。如:Set fldr=fso.CreateFolder(″C:\Temp2″)。

   四、对文件的操作

   读写文件,在VB6之前都是使用Open等语句来实现,FSO支持通过TextStream对象来创建和读写文本文件。

   FSO通过CreateTextFile、OpenTextFile、OpenAsTextStream 三种方法来创建一个顺序文本文件。文件创建后,就可分三步写入数据

   1.利用FileSystemObject对象的OpenTextFile方法或File对象的OpenAsTextStream 方法打开文本文件以备写入数据

   2.使用TextStream 对象的Write、WriteLine或WriteBlankLines方法写入数据

   3.使用TextStream对象的Close方法关闭文件。

   下例说明了如何创建文本文件:

   我们可使用TextStream 对象的Read、ReadLine或ReadAll方法从一个文本文件中读取数据

   Private Sub Command3—Click()  

   Dim fso As New FileSystemObject, fil As File, ts As TextStream

   fso.CreateTextFile ″c:\testfile.txt″

   Set fil=fso.GetFile(″c:\testfile.txt″)

   Set ts=fil.OpenAsTextStream(ForWriting)

   ts.Write (″这是一个测试文件!″)

   ts.Close

   Set ts=fil.OpenAsTextStream(ForReading)

   s=ts.ReadLine

   MsgBox s

   ts.Close

   End Sub

     除了创建与读写文件之外,VB6还可通过FileSystemObject对象对文件进行复制(CopyFile)、移动(MoveFile)与删除(DeleteFile)等操作,在File对象中等效的方法有Copy 、Move和Delete。例程如下 :

   Private Sub Command4—Click()

     Dim fso As New FileSystemObject, txtfile As TextStream, fil1 As File, fil2 As File

     Set txtfile=fso.CreateTextFile(″c:\testfile.txt″, True)

     txtfile.Write (″这是一个测试文件!″)

     txtfile.Close

     Set fil1=fso.GetFile(″c:\testfile.txt″)

   ′获得一个文件句柄

     fil1.Copy (″c:\temp1\testfile.txt″)  

   ′将该文件复制到\temp1目录下

     fil1.Move (″c:\temp2\testfile.txt″)  

   ′将该文件移动到\temp2目录下

     Set fil1=fso.GetFile(″c:\temp1\testfile.txt″)

     ′获得这些文件当前位置的句柄

     Set fil2=fso.GetFile(″c:\temp2\testfile.txt″)

     fil1.Delete

     fil2.Delete

   End Sub
上一篇:如何用TextBox打开和保存文件    下一篇:取得某个目录底下所有文件大小总和  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 倪秉书
信息来源: 网络 录入时间: 2005-8-4 11:35:10
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿