在计算系统中,文件管理一直是一个非常重要的概念。所谓的文件是指存放在外部存储介质上的数据和程序等。
在windows中编程时,下述这些功能是非常重要的:添加、移动、修改、创建、删除文件夹(目录)和文件,以及获得驱动器的信息和操作驱动器。
VB允许用下述两种不同的方法来操作驱动器、文件夹和文件。传统的方法是使用Open语句、Write#等,也可以用FileSystemObject(FSO)对象模型。从vb第一版直到如今,文件处理都是通过使用Open语句以及其它一些相关的语句和函数来实现并将逐步转向使用FSO对象模型。如果设计应用程序使用数据库文件,则在应用程序中不需要提供直接的文件访问。Date控件与绑定控件都可以向数据库读写数据,这比直接使用文件访问更容易。
下面介绍几个常用的文件控件。
在VB6.0中包括四个文件类型控件,它们分别是DriveListBox控件(驱动器列表框)、DirListBox控件(目录列表框)、FileListBox控件(文件列表框)和CommDialog控件,可以实现不同功能。
1、 DriveListBox控件![]()
DriveListBox控件的功能是在程序的运行过程中,为用户提供一个选择有效的磁盘驱动器,该控件可以用来显示用户系统中所有有效磁盘驱动器的列表。
DriveListBox控件及后面介绍的DirListBox控件、FileListBox控件有许多标准属性,包括Enable、FontBold、FontItalic、FontName、FontSize、Height、Left、Name、Top、Visible、Width等等。此外,DriveListBox控件最重要的一个属性就是Drive属性,用来改变DriveListBox控件的缺省驱动器,该Drive属性只能在程序的代码中设置,不能通过属性窗口设置。其格式为:
驱动器列表框名称.Drive[=驱动器名]
这里的“驱动器名”是指定的驱动器,如果省略,则指当前驱动器。如果所选择的驱动器在当前系统中不存在,则产生错误。
每次重新设置驱动器列表框的Drive属性时,都将引发Change事件。
下面就是一个利用DriveListBox控件来进行程序设计的示例。
(1)添加控件
首先在空白的窗体上放置一个DriveListBox控件。
(2)添加代码
在窗体的Form_Load()事件中添加下列代码:
Private Sub Form_load()
Drive1.Drive="e:\" '设置控件的缺省驱动器为E。
End Sub
程序说明:Form_load()事件在程序运行时就会被激活。然后就会通过Drive1.Drive="e:\"这条语句来设置控件的缺省驱动器为E。
(3)存储文件,运行程序
由于在程序的Form_Load()事件中设置DriveListBox控件的缺省驱动器为E盘,所以程序的开始界面中DriveListBox控件显示的是E盘。
2、DirListBox 控件![]()
DirListBox 控件的功能是在程序运行过程中,显示分层的列表。DirListBox 控件有几个比较重要的属性,如Path属性、List属性和ListCount属性。
(1)Path属性
Path属性用于目录列表框和文件列表框,用来设置或返回当前驱动器的路径,属性的值是一个指示路径的字符串,例如"e:\user"或"c:\PWIN95\MEDIA"。其格式为:
[窗体.]目录列表框│文件列表框.Path[="路径"]
Path属性也只能在程序的代码中设置,不能通过属性窗口设置。
一般在应用程序的设计中,如果用到DirListBox 控件,则同时要用到DriveListBox控件与之相关联,如下:
添加一个DriveListBox控件,一个DirListBox 控件。
设置两者同步(当DriveListBox控件的改变驱动器时,DirListBox 控件中的内容与之同步):
Private Sub Drive1_Change()
Dir1.Path=Drive1.Drive '设置 DirListBox 控件的路径与DriveListBox控件同步
End Sub
设置DriveListBox控件的缺省驱动器,如为“C”盘:
Private Sub Form_load()
Drive1.Drive="c:\" '设置控件的缺省驱动器为C。
End Sub
(2)List 属性
list属性的功能是返回或设置控件的列表部分的工程。
语法如下:
[窗体.]控件.list(index)[=string]
list属性语法包含下面部分:
对于DirListBox 控件,索引号序列(index)基于在运行中创建该控件时的当前目录和子目录。当前展开的目录用索引值-1表示,当前展开目录的上一级目录用绝对值更大一些的负索引值来表示。如,-2是当前展开的目录的父目录,-3又是它的上一级的目录。当前展开的目录以下的目录的范围是从0到ListCount-1。
例:添加一个 DriveListBox控件,一个 DirListBox 控件,并设置如下代码:
Private Sub Form_load()
Drive1.Drive="c:\" '设置控件的缺省驱动器为C。
End Sub
Private Sub Drive1_Change()
Dir1.Path=Drive1.Drive '设置 DirListBox 控件的路径与DriveListBox控件同步
End Sub
Private Sub Dir1_Change()
MsgBox Dir1.List(-2) '通过对话框显示选中目录的上一级目录。
End Sub
(3)ListCount属性
ListCount属性的功能是返回控件的列表部分工程的个数,对DirllistBox控件而言,ListCount 属性中存储着当前目录中子目录的个数。
Private Sub Form_Click()
Label1.Caption = Dir1.ListCount '显示选中目录的子目录个数。
End Sub
3、 FileListBox 控件![]()
FileListBox 控件的功能是在程序的运行过程中,根据path属性指定的目录,将文件定位并列举出来。
显示的文件的类型由FileListbox控件的pattern属性来决定,pattern属性可以在设计阶段用属性窗口设置,也可以通过代码设置。它的缺省值为"*.*",即显示所有的文件,如果要显示特定的文件类型,可以通过设置pattern属性来达到,例如只显示以"*.txt"或"*.exe"结尾的文件 ,可以将pattern属性设置为"*.txt"或" *.exe"。
在代码中设置pattern属性的格式为:
[窗体.]文件列表框.pattern[=属性值]
如果省略“窗体”,则指当前窗体上的列表框。如果省略“=属性值”,则显示当前文件列表框的pattern属性值。
当pattern属性改变时,将产生Pattern_Change事件。
注意:用pattern属性设置多种类型文件时,两种类型中间用分号隔开,而且在运行时,pattern属性是只读的。 考试编辑:admin