VB6中的FSO对象模型

2016-02-19 17:56 41 1 收藏

下面是个VB6中的FSO对象模型教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - 编程语言 】

在编程中,我们经常需要对文件系统中的驱动器、文件夹和文件进行处理,比如收集驱动器的相关信息;创建、添加、移动或删除文件夹和文件等。在VB6中新提供了一套称为FSO(FileSystemObject)对象模型来对文件系统进行访问处理。该模型提供了一个基于对象的工具,通过它所提供的一系列属性和方法,我们可以在应用程序中更简单、灵活地对文件系统进行各种操作。
  
  一、FSO简介
  
  FSO对象模型包含以下几种对象:
  
  Drive对象:允许收集系统物理或通过LAN与系统逻辑连接的硬盘、CD-ROM等驱动器的可用空间、共享名等信息。
  
  Folder对象:允许创建、删除或移动文件夹,并向系统查询文件夹的名称、路径等。
  
  Files对象:允许创建、删除或移动文件,并向系统查询文件的名称、路径等。
  
  TextStream对象:允许创建和读写文本文件。
  
  FileSystemObject对象:提供一整套用于驱动器、文件夹和文件操作的方法,在功能上可以把它看作是上面几个对象的集合并且经常与它们配合使用。与该对象相关联的很多方法重复了前面四个对象中的方法,因此我们既可以通过FileSystemObject对象来对驱动器、文件夹和文件进行大多数操作,也可以通过对应的驱动器、文件夹或文件对象对这些组件进行操作。FSO模型通过两种方法实现对同一对象的操作,其操作效果是相同的,提供这种冗余功能的目的是为了实现最大的编程灵活性。
  
  FSO对象模型包含在一个称为Scripting的类型库中,此类型库位于Scrrun.dll文件中,可从“工程”选单的“引用”对话框中选择“MicrosoftScriptingRuntime”项来引用此文件。
  
  创建一个FileSystemObject对象,可以通过如下两种方法来完成:1将一个变量声明为FileSystemObject对象类型:DimfsoAsNewFileSystemObject;2使用CreateObject方法来创建:Setfso=CreateObject(″Scripting.FileSystemObject″)。
  
  二、对驱动器的操作
  
  对驱动器的操作主要通过Drive对象并配合FileSystemObject对象,FSO不支持进行创建或删除驱动器的操作,而只允许收集关于系统所用驱动器的信息。通过该对象的属性可以获得下列信息:以字节表示的驱动器可用空间(AvailableSpace或FreeSpace);为驱动器指定的字母号(DriveLetter);驱动器类型(DriveType);驱动器使用的文件系统类型,诸如FAT、FAT32、NTFS等(FileSystem);驱动器是否可用(IsReady);驱动器的路径或根文件夹(Path和RootFolder);驱动器序列号(SerialNumber);共享名或卷标名(ShareName和VolumeName);以字节表示的驱动器总空间(TotalSize)。下面一例说明了如何收集有关驱动器的信息:
  
  PrivateSubCommand1—Click()
  
  DimfsoAsNewFileSystemObject,drvAsDrive,strAsString
  
  Setdrv=fso.GetDrive(fso.GetDriveName(″c:″))
  
  Debug.Print″TotalSpace:″&FormatNumber(drv.TotalSize/1024,0)&″Kb″
  
  Debug.Print″FreeSpace:″&FormatNumber(drv.FreeSpace/1024,0)&″Kb″
  
  EndSub
  
  三、对文件夹的操作
  
  Folder对象允许通过所提供的方法来复制(Copy)、删除(Delete)或移动(Move)文件夹,并通过其属性向系统查询其名称(Name)、路径(Path)以及创建日期(DateCreated)等。FileSystemObject对象对文件夹的操作方法有创建(CreateFolder)、复制(CopyFolder)、移动(MoveFolder)和删除(DeleteFolder)。在进行上述操作之前,首先要获得该文件夹的访问句柄(GetFolder)。下例说明了如何对文件夹进行操作:
  
  PrivateSubCommand2—Click()
  
  DimfsoAsNewFileSystemObject,fldrAsFolder
  
  Setfldr=fso.GetFolder(″c:″)  
  
  ′获得当前文件夹的访问句柄
  
  Debug.Print″Parentfoldernameis:″&fldr
  
  ′打印文件夹名
  
  Debug.Print″Containedondrive″&fldr.Drive  ′打印驱动器名
  
  fso.CreateFolder(″c:Temp″)
  
  ′用FileSystemObject对象创建一个新的文件夹
  
  fso.DeleteFolder(″c:Temp″)  
  
  ′删除新建的文件夹
  
  EndSub
  
  访问一个对象,要首先用“Get”方法获得该对象的访问句柄,但如果是用“Create”函数新创建一个对象,函数会返回一个句柄到新创建的对象,这时只要设置一个变量来获取该句柄即可,不必再用“Get”方法。如:Setfldr=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方法从一个文本文件中读取数据。
  
  PrivateSubCommand3—Click()  
  
  DimfsoAsNewFileSystemObject,filAsFile,tsAsTextStream
  
  fso.CreateTextFile″c:estfile.txt″
  
  Setfil=fso.GetFile(″c:estfile.txt″)
  
  Setts=fil.OpenAsTextStream(ForWriting)
  
  ts.Write(″这是一个测试文件!″)
  
  ts.Close
  
  Setts=fil.OpenAsTextStream(ForReading)
  
  s=ts.ReadLine
  
  MsgBoxs
  
  ts.Close
  
  EndSub
  
  除了创建与读写文件之外,VB6还可通过FileSystemObject对象对文件进行复制(CopyFile)、移动(MoveFile)与删除(DeleteFile)等操作,在File对象中等效的方法有Copy、Move和Delete。例程如下:
  
  PrivateSubCommand4—Click()
  
  DimfsoAsNewFileSystemObject,txtfileAsTextStream,fil1AsFile,fil2AsFile
  
  Settxtfile=fso.CreateTextFile(″c:estfile.txt″,True)
  
  txtfile.Write(″这是一个测试文件!″)
  
  txtfile.Close
  
  Setfil1=fso.GetFile(″c:estfile.txt″)
  
  ′获得一个文件句柄
  
  fil1.Copy(″c:emp1estfile.txt″)  
  
  ′将该文件复制到emp1目录下
  
  fil1.Move(″c:emp2estfile.txt″)  
  
  ′将该文件移动到emp2目录下
  
  Setfil1=fso.GetFile(″c:emp1estfile.txt″)
  
  ′获得这些文件当前位置的句柄
  
  Setfil2=fso.GetFile(″c:emp2estfile.txt″)
  
  fil1.Delete
  
  fil2.Delete
  
  EndSub->

来源:https://www.tulaoshi.com/n/20160219/1616412.html

延伸阅读
嘿嘿,看到这个题目,想必吓了一大跳吧,或者是摆出一副不相信的表情?不用着急,请听我慢慢道来。 话说这个VB6,很是无耻,居然内置了支持Unicode的功能,也就是说,当你读入一个字符串时,它根据本地缺省语言的对应关系将之转换为Unicode,输出时,再从Unicode转换为本地编码。一方面,它当然方便啦,随便出个什么语言的版本都好方便的,...
我们在玩《仙剑奇侠传》时,要是不能保存数据,那么非得挑灯夜战三昼夜才能玩完,可见数据存储之重 要性。爱好编程的CFAN是不会放过数据文件的,下面跟着我驰骋吧!我们先吃一个哈密瓜,开门即来编一传统的比较有代表性的程序,不可不看的哟! 程序分为一个表单cfanvb.frm,一个模块cfanvb.bas。一个表单程序。程序的表单中有五个命令按...
用VB6编写强力的windows隐藏引擎 编程爱好者一定经常见到能够隐藏桌面项目和状态栏等的软件,其中最著名的就是Hide-It。其实我们能够编写一个功能更加强大的即时超级隐藏引擎,它不仅可以隐藏桌面项目、开始按钮、状态栏、时钟栏,而且可以隐藏任何软件的按钮、菜单、工具栏、文本框、状态栏等等,只要是能够看见的独立部分——当然也可以...
初学VB编程,很快就能编出些实用的程序了。我便将它们制成安装盘送给朋友,但很快就发现一个问题,程序总是按编程时固定好的路径读写文件,但文件路径改变,程序就找不到路径了,因此不能正常写文件。例如编程时设定:picture1.picture=LoadPicture("c:HVBHAN.BMP")但若安装使用时,工作目录变为E:HVBHAN.BMP或其它路径,程序就会出错,并提示...
在VB6中动态创建使用ADO控件访问数据库 使用ADO控件可以方便的在VB6中访问ODBC数据库,但是通过直接放置ADODS控件来获得ADO的数据连接比较麻烦,我们可以在VB工程中创建一个公共数据模块,将ADO控件的初始化、建立连接、关闭连接等操作都写到函数中,这样就可以在工程的其他模块中共享调用这个ADO连接。 一次完整的ADO调用操作分为如下几个步骤...

经验教程

462

收藏

21
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部