打印本文 打印本文 关闭窗口 关闭窗口
具有微软风格的Explore
作者:武汉SEO闵涛  文章来源:敏韬网  点击数565  更新时间:2009/4/23 14:58:39  文章录入:mintao  责任编辑:mintao
  尽管Visual Basic标准控件DriveListBox、DirListBox和FileListBox在一些环境中能很好使用,但若想显示类似Windows Explorer的文件夹结构就显得力不从心了。这时就必须使用TreeView控件,因为它为文件、文件夹和驱动器显示提供了完善的解决方案,并且系统的FileSystemObject对象能有效地获得主机的目录信息。

  本文将介绍如何使用FileSystemObject将指定的目录或全部的驱动器与TreeView控件相结合,以及如何消除当驱动器全部文件列表填充TreeView时所遇到的缺陷。作为技巧,文中还讨论如何用SendMessage()的API函数来对TreeView内容的快速清除。事实上,这是一种最快捷的方法,它也可用于其他控件中。

关于FileSystemObject对象库
  众所周知,FileSystemObject对象库是在Visual Basic Scripting Edition 2.
中发布的,它包括一系列用于驱动器、文件夹和文件的操作。为了能在Visual Basic中使用FileSystemObject,必须引用SCRRUN.DLL文件以便能使用它的属性、方法和事件。在VB工程中添加SCRRUN.DLL的引用,是通过选择"Project"(工程)->"References"(引用)命令,然后选定"Microsoft Scripting Runtime"项来进行的。一旦引用后,就可用FileSystemObject方法获得文件夹名称以及每个文件夹下的文件名。
  FileSystemObject允许用户在当前磁盘中进行文件操作,如复制、删除以及其他文件夹、文件操作等。本文着重讨论与文件夹结构相关的方法,即如何获得文件夹和文件名称。

创建示例
  示例创建的过程是这样的,首先在默认的表单中添加必要的控件;然后添加代码,用来将目录内容添加在TreeView中;最后,利用SendMessageLong() API函数添加一个过程,用来清除TreeView中的内容。

创建用于文件和文件夹的表单
  首先,创建一个新的Visual Basic工程;然后,将默认的表单标题设置为"Exploring the Windows' directory",再在表单上添置一个TreeView控件和一个命令按钮控件,保留默认名称。最后,将命令按钮的标题设置为"Fill TreeView"。

声明两个重要的变量
  在这一步中,我们需要为表单添加一些代码。首先,需要安装SCRRUN.DLL的引用,从菜单栏上选择"Project"(工程)->"References"(引用)命令,在弹出的对话框中,选中"Microsoft Scripting Runtime"项。单击[OK]按钮关闭对话框。然后,在表单中右击鼠标,从弹出的快捷菜单中选择"View Code"命令,在声明部分添加下列语句:
Const DEFAULT_DRIVE = "C:\"
Dim FSO As New Scripting.FileSystemObject
  这里为简单起见,我们用一个常量来指定建立的目录树的默认驱动器。当然,最好能让用户对这个值作出选择。
  用户或许想知道为什么在表单层中声明一个FSO变量,而不是在实际读取文件信息的过程中声明。这完全是一次偶然机会的心得,因为在许多好的程序中,通常允许用户用多种方式处理选择的文件。在表单层范围内定义一个FSO变量,其目的是可以处理所有其他FileSystemObject成员,而不必每次都有定义一个对象变量。
  基于这种考虑,在表单被调用时应对FSO变量进行初始化,而当表单关闭后,该变量应被清除。这项工作的最终完成是通过下面的代码:
Private Sub Form_Load()
  Set FSO = New FileSystemObject
End Sub
Private Sub Form_Unload(Cancel As Integer)
  Set FSO = Nothing
End Sub

打印本文 打印本文 关闭窗口 关闭窗口