FSO对象模型的应用 - Qzone日志

来源:百度文库 编辑:神马文学网 时间:2024/04/28 05:41:10

FSO对象模型的应用

  • 复制地址

    请用Ctrl+C复制后贴给好友。

  • 转载
  • 分享

小菜鸟 2010年01月06日 08:15 阅读(13) 评论(0) 分类:个人日记

  • 举报
  • 字体:大

  
  (一)创建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