在计算系统中,文件管理一直是一个非常重要的概念。所谓的文件是指存放在外部存储介质上的数据和程序等。
在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属性语法包含下面部分:
- 控件:可以是组合框、列表框、驱动器列表框、目录列表框、文件列表框等。
- index:某种列表框中项目的下标。
- string:字符串表达式
对于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属性是只读的。
一个应用FileListBox 控件设计程序示例的具体的步骤如下:
(1)界面设计
在空白的窗体上添加一个FileListBox 控件,添加一个Textbox控件,它的Name属性设置为Text1,Text属性设置为"文件路径:",它的作用是显示选中文件的路径和文件名。
(2)添加代码
在设计阶段双击窗体,在窗体的form_load()事件中添加下列代码:
Private Sub Form_load() file1.path="c:\windows\" '初始化控件的目录。 End Sub
在这里程序通过file1.path="c:\windows\" 这条语句就把filelistbox控件的初始值设置为"c:\windows\"。
在设计阶段双击filelistbox控件,在它的file1_click()事件添加下列是代码:
Private Sub File1_click() text1.text="文件路径:"& file1.path & "\" & file1.filename '在文本框中显示文件的路径和文件名。 End Sub
在语句Text1.text="文件路径:" & file1.path & "\" & file1.filename 中,file1.path存储着文件的路径,而file1.filename中存储着文件名,所以在文本框中就会显示出选中文件的路径和文件名。
[程序演示] [程序下载]
(3)设置驱动器列表框、目录列表框、文件列表框三者的同步
在一个窗体上,当包含这三种控件时,应让它们同步,实现的代码如下:
Private Sub Drive1_Change() Dir1.Path = Drive1.Drive '设置 DirListBox 控件的路径与DriveListBox控件同步 End Sub
Private Sub Dir1_Change() File1.Path = Dir1.Path '设置 FileListBox控件的路径与 DirListBox控件同步 End Sub
4、 CommDialog控件
CommDialog控件的功能是提供一组标准的操作对话框,例如打开和保存文件、设置打印选项,以及选择颜色和字体等操作。
1.commondialog控件常用方法
CommDialog控件所显示对话框由控件的方法确定,在程序的运行过程中,当相应的方法被调用时,就会显示一个对话框。
CommonDialog控件的常用方法和所能显示的对话框如下表所示;
方法 |
实现的功能 |
showopen |
显示"打开"对话框 |
showsave |
显示"另存为"对话框 |
showcolor |
显示"颜色"对话框 |
showprinter |
显示"打印"或"打印选项"对话框 |
showhelp |
调用windows帮助引擎 |
showfont |
显示"字体"对话框 |
2. Action 属性
它的功能是返回或设置被显示的对话框的类型。语法如下:
object.Action[=value]
参数value的设置及其相应的功能如下表所示。
参数设置 |
相应功能 |
0 |
没有操作 |
1 |
显示"打开"对话框 |
2 |
显示"另存为"对话框 |
3 |
显示"颜色"对话框 |
4 |
显示"字体"对话框 |
5 |
显示"打印"对话框 |
6 |
运行winhlp32.exe |
3.Filter属性
Filter属性的功能是返回或设置在对话框的类型列表框中所显示的过滤器。语法结构如下:
object.filter[=description1|filter1|description2|filter2.....]
其中description参数是用来描述文件类型的字符串表达式,而filter参数是用来指定文件名扩展的字符串表达式。
例如下面的程序:
Private Sub Form_load()
Commondialog1.filter="Text(*.txt)|*.txt|Picture(*.bmp)|*.bmp" '设置过滤器
Commondialog1.Action=1 '设置动作。
End sub
注意:两种类型中间用分隔符或分号隔开,在代码中分隔符隔开,如果在设计阶段,在属性窗口中用分号隔开。
|