科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件使用VB中的SERIPTING RUNTIME LIBRARY

使用VB中的SERIPTING RUNTIME LIBRARY

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

什么是Scripting Runtime Library?按照一般的说法,Scripting Runtime Library(以下简称SR)提供了微软“忘记”放到Visual Basic中的基本的文件系统操作函数和对象。

作者:enet 来源:soft6 2008年5月14日

关键字: Runtime SERIPTING VB vb.net Windows

  • 评论
  • 分享微博
  • 分享邮件
什么是Scripting Runtime Library?按照一般的说法,Scripting Runtime Library(以下简称SR)提供了微软“忘记”放到Visual Basic中的基本的文件系统操作函数和对象。

  点击菜单的 Project | Referrences 项,在References选择窗口的References列表中选择 Microsoft Scripting Runtime 项。然后单击 “确定”键选择退出就可以将Scripting Runtime Library加入到VB工程文件中。(在下面的程序中在添加代码之前都要执行这一步操作,凡是在下面提到加入SR库,都是指这一步)一个SR对象包括FileSystemObject对象和Directionary对象,分别对应文件系统操作和字典操作。

  例如 Dim fsoSys As New Scripting.FileSystemObject 就定义了一个FileSystemObject对象。

  FileSystemObject对象包含获取驱动器信息的Drive对象;对文件进行复制、删除、移动等操作的File对象;对文件夹进行建立、复制、删除、移动和获取文件夹下的文件和子文件夹的Folder对象;建立、读取、写入文本文件的TextStream对象。下面对这些对象的属性和操作方法进行分门别类的介绍


 

[下一页]


 

  一、对于驱动器Drive对象的操作

  通过一个Drive对象可以获得该对象定义的驱动器的容量、属性等信息,使用FileSystemObject对象的GetDrive方法可以得到一个Drive对象。

  下面是一个Drive对象操作的范例。

  首先在VB中建立一个新的工程。加入SR库。然后在Form1中加入一个ListBox控件、一个PictureBox不要改变它们的属性,然后在Form1的代码窗口中加入以下代码:

   Option Explicit

   Dim fsoSystem As New FileSystemObject

   Dim fsoDrives As Drives

   Dim fsoDrive As Drive

   Private Sub Form_Load()

   Dim sDrive As String

   Dim sDriveType As String

   Dim bHasCDRom As Boolean

   Set fsoDrives = fsoSystem.Drives

   For Each fsoDrive In fsoDrives

   sDrive = fsoDrive.DriveLetter & “: "

   Select Case fsoDrive.DriveType

   Case 0: sDriveType = “未知类型驱动器"

   Case 1: sDriveType = “可移动驱动器"

   Case 2: sDriveType =“固定驱动器"

   Case 3: sDriveType = “远程驱动器"

   Case 4: sDriveType =“CDROM驱动器"

   Case 5: sDriveType = “RAM Disk"

   End Select

   If fsoDrive.DriveType = CDRom Or fsoDrive.DriveType = CDRom Then

   bHasCDRom = bHasCDRom Or fsoDrive.IsReady

   End If

   sDrive = sDrive & sDriveType

   List1.AddItem (sDrive)


   Next

   End Sub

   Private Sub Form_Unload(Cancel As Integer)

   Set fsoSystem = Nothing

   End Sub

   Private Sub List1_Click()

   Dim astr$

   Dim fsoDrive As Drive

   If List1.ListIndex > -1 Then

   astr = Left$(List1.List(List1.ListIndex), 1)

   Set fsoDrive = fsoSystem.GetDrive(astr)

   ’检查驱动器是否准备好

   If Not fsoDrive.IsReady Then

   MsgBox (“该驱动器未准备好或未插入磁盘")

    Exit Sub

    End If

   ’输出驱动器信息

   With Picture1

   .Cls

   .CurrentX = 30: .CurrentY = 30

   Picture1.Print“总容量" + Format$(fsoDrive.TotalSize, _

   “###,###,###,###,###,##0") +“ 字节"

   Picture1.Print “可用容量" + Format$(fsoDrive.AvailableSpace, _

   “###,###,###,###,###,##0") + “字节"

   Picture1.Print fsoDrive.DriveLetter & “: 使用的文件系统为: " & _

   fsoDrive.FileSystem

   End With

   Set fsoDrive = Nothing

   End If

   End Sub

  运行程序,程序检测系统中所有的可用驱动器。然后将它们在List1上列出来,点击List1上的驱动器列表项,该驱动器的基本信息就会显示在Picture1上,如果该驱动器未准备好(例如未插入磁盘或光盘),程序就会出现提示。利用该方法可以检测软驱或者CD-ROM驱动器中是否有盘以及实现向超级解霸中的CD自动检测功能。需要注意的一点是:上面的程序在检测磁盘容量时只支持2GB的容量,也就是说如果你的分区大于2G的话,检测出来的容量也不会超过2GB。


 

[下一页]


  二、对于文件夹Folder对象的操作

  通过FileSystemObject的GetFolder方法可以获得一个Folder对象。下面的范例介绍了如何建立一个Folder对象和利用该对象建立、删除文件夹和获取子文件夹的操作。

  首先建立一个工程文件,在其中加入SR库。在Form1中加入一个TreeView控件,两个CommandButton控件,然后在Form1中加入以下代码:

   Dim fsoSys As New Scripting.FileSystemObject

   Dim fsoRootFolder As Folder

   Private Sub Form_Load()

   Dim fsoSubFolder As Folder

   Dim nodRootNode As Node

   Dim nodChild As Node

   Dim astr$

   Set nodRootNode = TreeView1.Nodes.Add(, , “Root", “c:\")

   Set fsoRootFolder = fsoSys.GetFolder(“c:\")

   For Each fsoSubFolder In fsoRootFolder.SubFolders

   astr = fsoSubFolder.Path

   Set nodChild = TreeView1.Nodes.Add("Root", tvwChild, astr, fsoSubFolder.Name)

   Next

   Set fsoRootFolder = Nothing

   Command1.Caption =“建立目录"

   Command2.Caption = “删除目录"

   End Sub

   Private Sub Form_Unload(Cancel As Integer)

   Set fsoSys = Nothing

   End Sub

   Private Sub Command1_Click()

   Dim fsoFolder As Folder

   ’检查目录是否存在,如果目录不存在则建立新目录

   If fsoSys.FolderExists(“c:\temp") Then

   MsgBox (“目录c:\temp已经存在,无法建立目录")

   Else

   Set fsoFolder = fsoSys.CreateFolder(“c:\temp")

   Set fsoFolder = Nothing

   End If

   End Sub

   Private Sub Command2_Click()

   ’检查目录是否存在,如存在则删除目录

   If fsoSys.FolderExists(“c:\temp") Then

   fsoSys.DeleteFolder ("c:\temp")

   Else

   MsgBox (“目录c:\temp不存在")

   End If

   End Sub

  运行程序,程序建立一个指向C盘根目录的Folder对象并获取它的所有子文件夹加入到TreeView中,双击TreeView1中的 “c:\" 就可以打开分支查看c:\目录下的所有子目录名。点击Command1就可以建立 c:\temp目录,如果目录已存在程序会给出提示;点击Command2删除c:\temp目录。


 

[下一页]


  三、对于文件File对象的操作

  通过FileSystemObject的GetFile方法可以建立一个指向磁盘上一个文件的File对象。下面的范例介绍了如何利用File对象获得文件的基本信息。

  首先建立一个新的工程文件,加入SR库,在Form1中加入一个FileListBox控件和一个PictureBox控件,不要使二者重叠,然后在Form1中加入以下代码:

   Option Explicit

   Dim fsoSys As New Scripting.FileSystemObject

   Private Sub File1_Click()

   Dim fsoFile As File

   Dim astr$

   Dim sDateCreate

   On Error GoTo errfun

   ’获得File1中的文件名并据此建立一个File对象

   Set fsoFile = fsoSys.GetFile(“c:\windows\" + File1.List(File1.ListIndex))  

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章