转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
深入Scripting Runtime Library 之一         ★★★★

深入Scripting Runtime Library 之一

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2063 更新时间:2009/4/23 18:58:57

深入Scripting Runtime Library 之一

www.applevb.com


    什么是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))
   
    Picture1.Cls
    Picture1.CurrentY = 10
    Picture1.Print "文件名      " + fsoFile.Name
    Picture1.Print "Dos文件名   " + fsoFile.ShortName
    Picture1.Print "文件类型    " + fsoFile.Type
    Picture1.Print "文件大小    " & Str(fsoFile.Size)
    sDateCreate = fsoFile.DateCreated
    Picture1.Print "创建时间    " & sDateCreate
    Picture1.Print "修改时间    " & fsoFile.DateLastModified
    Picture1.Print "访问时间    " & fsoFile.DateLastAccessed
    If fsoFile.Attributes And Archive Then
        astr = astr + "常规 "
    End If
    If fsoFile.Attributes And ReadOnly Then
        astr = astr + "只读 "
    End If
    If fsoFile.Attributes And Hidden Then
        astr = astr + "隐藏 "
    End If
    If fsoFile.Attributes And System Then
        astr = astr + "系统 "
    End If
    If fsoFile.Attributes And Compressed Then
        astr = astr + "压缩 "
    End If
   
    Picture1.Print "文件类型    " + astr
   
    Set fsoFile = Nothing
    Exit Sub
errfun:
    ''''如果文件创建时间为未知就会导致错误,这里是错误处理程序段
    sDateCreate = "(未知)"
    Resume Next
End Sub

[1] [2]  下一页


[VB.NET程序]深入Scripting Runtime Library 之二  [网页制作]在Dreamweaver中如何使用Library
[网页制作]Dreamweaver中如何使用Library  [求职简历]Education and Library Science(教育部分)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台