⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 139.txt

📁 VB文章集(含API、窗口、数据库、多媒体、系统、文件、等等)
💻 TXT
字号:
在VB中直接用ODBC API访问数据库
 

中国航空信息中心 吴 斌

    从WINDOWS 95开始,微软为我们提供了一个好用的文件搜索器。使用这个搜索器,我们可以方便快捷的查找到符合条件的文件。但有时我们在程序设计中也需要这一功能,能否在自己的程序中实现呢?答案当然是肯定的。下面我们就来着手设计一个VB程序中的文件搜索器。 

    首先,进入VB中,建立一个新的表单。在表单上建立一个驱动器列表框(DriveList),一个目录列表框(FolderList),一个检查框(SubCheck),一个ListView控件(FileList),两个文本框(FileName,FileSize)和两个按钮(cmdSearch,cmdExit)。需要注意的是ListView 控件是 Mscomctl.ocx 文件中一组 ActiveX 控件的一部分。若要在应用程序中使用 ListView 控件,必须将 Mscomctl.ocx 文件添加到工程中。选择ListView控件,点击鼠标右键,在弹出菜单中选择“属性”。在属性窗口的“列首”页中设置将要显示的列,连续按动“插入列”5次。排列好各控件的位置,然后加入以下代码: 

Option Explicit
Dim FileSys As Scripting.FileSystemObject

Private Sub CmdExit_Click()
    End
End Sub

Private Sub DriveList_Change()
    FolderList.Path = DriveList
End Sub

Private Sub Form_Load()
    Dim I As Integer
    Set FileSys = New Scripting.FileSystemObject
    FolderList.Path = Left(DriveList.Drive, 2) & "\"
    With FileList.ColumnHeaders.Item(1)
        .Alignment = lvwColumnLeft
        .Text = "文件名"
        .Width = 2000
    End With
    With FileList.ColumnHeaders.Item(2)
        .Alignment = lvwColumnRight
        .Text = "大小(KB)"
        .Width = 1500
    End With
    With FileList.ColumnHeaders.Item(3)
        .Alignment = lvwColumnLeft
        .Text = "类型"
        .Width = 1500
    End With
    With FileList.ColumnHeaders.Item(4)
        .Alignment = lvwColumnLeft
        .Text = "路径"
        .Width = 2000
    End With
    With FileList.ColumnHeaders.Item(5)
        .Alignment = lvwColumnLeft
        .Text = "修改时间"
        .Width = 2000
    End With
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Set FileSys = Nothing
End Sub

Private Sub cmdSearch_Click()
    Dim SFolderStart As Scripting.Folder
    Set SFolderStart = FileSys.GetFolder(FolderList.Path)
    FileList.ListItems.Clear
    AddFiles SFolderStart
If FileList.ListItems.Count = 0 Then MsgBox _
    "没找到任何符合条件的文件!",vbOKOnly + vbInformation, "提示信息"
End Sub

Private Sub AddFiles(SFolderSearch As Scripting.Folder)
    Dim SFolder As Scripting.Folder
    Dim SFile As Scripting.File
    Dim sngFileSize As Single
    Dim lngSize As Long
    Dim Itm As ListItem
    If SubCheck.Value = 1 Then
        If SFolderSearch.SubFolders.Count Then
            For Each SFolder In SFolderSearch.SubFolders
                AddFiles SFolder
            Next SFolder
        End If
    End If
    sngFileSize = FileSize * 1000
    For Each SFile In SFolderSearch.Files
        With SFile
            If .Size >= sngFileSize And IIf(FileName.Text < > "", _
            InStr(.Name, FileName.Text)  > 0, True) Then
                Set Itm = FileList.ListItems.Add(Text:=.Name)
                lngSize = .Size / 1000
                With Itm
                    .SubItems(1) = Format(lngSize, "#,###")
                    .SubItems(2) = SFile.Type
                    .SubItems(3) = SFile.ParentFolder
                    .SubItems(4) = SFile.DateLastModified
                End With
            End If
        End With
    Next SFile
    Set Itm = Nothing
    Set SFolder = Nothing
End Sub
    运行后,选择相应目录,再在FileName文本框中输入要查找的文件名或文件名的一部分,然后再在FileSize文本框中输入文件的大小,按下搜索按钮即可搜索到相应文件。当然,这只是个功能较为简单的文件搜索器,有兴趣的读者可以使用Scripting.FileSystemObject对象的属性为其添加一些更为有用的功能。 

    本例程序在Visual Basic 4.0、Windows 95环境下调试通过。


 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -