Private Sub cmdSearch_Click()
filList.Pattern = txtSearchSpec.Text
'设置过滤器
filList.Path = dirList.Path
'显示查找结果
End Sub
Private Sub DirList_Change()
filList.Path = dirList.Path
'设置文件显示路径
End Sub
Private Sub DrvList_Change()
On Error GoTo DriveErrs
dirList.Path = drvList.Drive
'设置目录显示路径
Exit Sub
DriveErrs:
Select Case Err
Case 68
MsgBox prompt:="驱动器未准备好。请在驱动器内插入磁盘。", _
buttons:=vbExclamation
' 将路径重置为先前使用的驱动器。
drvList.Drive = dirList.Path
Exit Sub
Case Else
MsgBox prompt:="应用程序错误。", buttons:=vbExclamation
End Select
End Sub
Private Sub Form_Load()
drvList.Drive = "c:"
'设置缺省驱动器
dirList.Path = "c:\windows"
'设置缺省工作路径
txtSearchSpec.Text = "*.*"
'设置文本框中显示文本
filList.Pattern = "*.*"
'设置过滤器
Check1(0).Value = 0
Check1(1).Value = 0
Check1(2).Value = 0
Check1(3).Value = 0
'初始化Check1控件数组状态
End Sub
Private Sub Form_Unload(Cancel As Integer)
End
'结束程序的运行
End Sub
前面的两个示例程序大多是依靠着三个文件类控件来完成对文件的操作,其实在Visual Basic 6.0系统中有很多的处理文件的系统语句和函数(以下统称文件函数),利用这些文件函数可以实现文件的复制、粘贴和删除等操作,下面就利用Kill、GetAttr和FileDateTime等文件函数来进行文件的处理操作。
注意:
@ 示例程序可以显示选中的大小、修改时间和属性等信息,同时还可以通过简单的鼠标拖动就能够实现删除文件等操作。
具体的程序设计步骤如下所示:
新建标准的工程文件,同时打开了一个空白的窗体。
窗体的属性设置如下所示:
Begin Visual Basic.Form Form1
BorderStyle=3
Caption="Form1"
ScaleHeight=4590
ScaleWidth =6885
ShowInTaskbar= 0
StartUpPosition= 2
End
经过以上属性设置后的窗体具有如下所示的特性:
n 程序运行过程中,窗体位于屏幕的中央,并且用户不能够移动窗体;
n 窗体的标题栏中显示文本“Form1”;
n 窗体的标题栏中没有最大化和最小化按钮,只有关闭按钮;
n 在程序运行的过程,用户不能够改变窗体的大小。
在本示例程序中,虽然主要的程序功能是通过调用Visual Basic 6.0的系统文件函数来完成的,但是首先要能够显示文件,所以在程序设计的过程中要向当前空白的窗体上添加一个DriveListBox控件、一个DirListBox控件、一个FileListBox控件和一个ComboBox控件,添加控件后的窗体如图5-17所示。

图5-17 添加文件类控件后的窗体
其中四个控件的作用如下所示:
n DriveListBox控件:在程序运行的过程中显示用户计算机上的所有有效的驱动器,并且负责用户选择驱动器时的错误处理;
n DirListBox控件:在程序运行的过程中显示当前驱动器下的各个目录项;
n FileListBox控件:显示当前路径下的文件列表,文件显示的类型需要由用户在程序运行的过程中指定;
n ComboBox控件:用于在程序运行的过程中选择文件类控件的过滤器。
以上添加的四个ActiveX控件属性设置如下所示:
Begin Visual Basic.ComboBox Combo1
Height = 315
Left = 2400
Text = "显示文件类型:"
Top = 3840
Width = 2055
End
Begin Visual Basic.FileListBox File1
Height = 3405
Archive = -1
Hidden = -1
Left = 2400
ReadOnly = -1
System = -1
Top = 360
Width = 2055
End
Begin Visual Basic.DirListBox Dir1
DragIcon = "form2.frx":0054
Height = 3465
Left = 360
Top = 720
Width = 1935
End
Begin Visual Basic.DriveListBox Drive1
DragIcon = "form2.frx":035E
Height = 315
Left = 360
Top = 360
Width = 1935
End
在程序运行的过程中,还要显示选中文件的大小、修改时间和各种属性,这些都需要通过一定的显示容器才能够实现。
为此,在程序设计的过程中,向窗体上添加三个Label控件和三个TextBox控件,各个控件的功能将会在以后加以说明,添加控件后的窗体如图5-18所示。

图5-18 添加控件后的窗体
其中ActiveX控件的属性设置如下所示:
Begin Visual Basic.TextBox Text3
Height = 675
Left = 4680
Top = 3480
Width = 2055
End
Begin Visual Basic.TextBox Text2
Top = 2160
End
Begin Visual Basic.TextBox Text1
Top = 840
End
Begin Visual Basic.Label Label3
AutoSize = -1
Caption = "修改时间:"
Height = 315
Left = 4680
Top = 3000
Width = 1425
End
Begin Visual Basic.Label Label2
Caption = "文件属性:"
End
Begin Visual Basic.Label Label1
Caption = "文件大小:"
End
它们的作用如下所示:
n Text1控件:在程序运行的过程中显示选中文件的大小,以Byte为单位;
n Text2控件:在程序运行的过程中显示选中文件的属性,如系统、存档和只读等;
n Text3控件:在程序运行的过程中显示选中文件的最近修改时间和日期;
n Label控件:显示固定的提示文本“文件大小”、“文件属性”和“修改时间”。
在程序设计的过程中,首先在项目管理器中用鼠标单击窗体File,激活窗体后,用鼠标双击窗体上的空白处,在屏幕上就会弹出一个代码窗口,在代码窗口的对象列表中选择窗体Form,在对应的事件列表中选择窗体的初始化事件Private Sub Form_Load(),在代码编辑窗口把光标移动到Private Sub Form_Load()事件的处理过程中,并且添加如下所示的程序初始化代码:
Private Sub Form_Load()
Drive1.Drive = "c:"
Dir1.Path = "c:\windows"
File1.Pattern = "*.*"
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
窗体Private Sub Form_Load()事件中的代码在对话框窗体被激活的初期就被执行,程序首先会通过语句设置缺省工作驱动器和缺省工作路径为“c:”和“c:\windows”,然后设置文件类控件的过滤器为“*.*”,即在程序运行的初期将显示所有类型的文件,最后通过Text1.Text = ""、Text2.Text = ""和Text3.Text = ""清空窗体上的三个文本框。经过程序初始化后的运行窗体如图5-19所示。

图5-19 经过初始化后的程序运行窗体
示例程序在运行的过程中,用户可以在文件显示控件中选择一个有效的文件,同时在三个文本框中就会显示出选中文件的大小、修改时间和属性。为此,在程序设计的过程中,用鼠标左键双击窗体上的File1控件,屏幕上就会弹出一个代码窗口,在代码窗口的对象列表中选择控件File1,在对应的事件列表中选择Private Sub File1_Click()事件,把鼠标移动到事件处理过程中,并且添加如下所示的响应代码:
Private Sub File1_Click()
Form1.Text2.Text = ""
If Mid(File1.Path, Len(File1.Path)) = "\" Then
Fname = File1.Path & File1.FileName
'如果被单击的文件在根目录,就追加文件名。
Else
Fname = File1.Path & "\" & File1.FileName
'如果被单击的文件不在根目录,就追加 "\" 和文件名。
End If
Form1.Text1.Text = FileLen(Fname) & "Byte"
If (GetAttr(Fname) And 32) <> 0 Then
Form1.Text2.Text = Form1.Text2.Text & " 存档"
End If
If (GetAttr(Fname) And 2) <> 0 Then
Form1.Text2.Text = Form1.Text2.Text & " 隐藏"
End If
If (GetAttr(Fname) And 1) <> 0 Then
Form1.Text2.Text = Form1.Text2.Text & " 只读"
End If
If (GetAttr(Fname) And 4) <> 0 Then
Form1.Text2.Text = Form1.Text2.Text & " 系统"
End If
Form1.Text3.Text = FileDateTime(Fname)
End Sub
程序说明:
在程序运行的过程中,当用户在文件显示控件File1上选中一个有效的文件后,程序就会自动的激活控件的Private Sub File1_Click()事件:
首先通过语句Form1.Text2.Text = ""清空文本框控件Text2中的文本,通过语句Form1.Text1.Text = FileLen(Fname) & "Byte"显示用户选中文件的大小,然后通过四个条件判断语句来显示选中文件的属性(如存档、隐藏、只读和系统等),最后通过代码Form1.Text3.Text = FileDateTime(Fname)显示选中文件的修改时间。
显示选中文件基本信息后的窗体如图5-20所示。

图5-20 显示选中文件基本信息后的窗体
注意:
@ 在程序运行的过程中,当用户在文件控件File1中按下鼠标左键时,鼠标的形状就会改变,当把选中文件拖动到目录显示控件Dir1中时,程序就会自动的删除指定的文件。
为此,在程序设计的过程中,在窗体上双击左键,在屏幕上就会弹出一个代码窗口,在代码窗口对象列表中分别选择控件File1和Dir1,在对应的事件列表中选择Private Sub File1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)事件和Private Sub Dir1_DragDrop(Source As Control, X As Single, Y As Single)事件,把光标移动到事件处理过程中,并且添加如下所示的事件响应代码:
Private Sub File1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
File1.DragIcon = Drive1.DragIcon
File1.Drag
'开始拖动
End Sub
Private Sub Dir1_DragDrop(Source As Control, X As Single, Y As Single)
……
Kill Fname
'删除拖动文件
Form1.File1.Refresh
End Sub
在程序运行的过程中,当用户在文件显示控件File1上按下鼠标左键时,就会激活控件的Private Sub File1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)事件,程序通过语句File1.Drag开始了选中文件的拖动操作,当把选中文件拖动到目录显示控件Dir1中时,就会激活控件的Private Sub Dir1_DragDrop(Source As Control, X As Single, Y As Single)事件,通过语句Kill Fname删除指定的文件,最后通过代码Form1.File1.Refresh刷新删除文件后的文件显示控件。拖动文件时的窗体如图5-21所示。

图5-21 拖动文件时的窗体
按照程序清单所示添加剩余的程序代码,用鼠标选择菜单“文件”中的“保存”来存储文件,然后在键盘上按下功能键F5运行程序,程序运行初始画面如图5-22所示。

图5-22 程序运行初始画面
在程序运行的过程中,用户可以选择计算机上的任何一个有效的驱动器和其中的目录,同时还可以显示选中文件的大小和修改事件等信息,还可以对选中文件进行拖动操作,程序运行结果如图5-23所示。

图5-23 程序运行结果