请问各位在VB中怎样实现查找“D:\li\xx.doc文件”也可以象“开始菜单->搜索->文件或文件夹”一样,我现在急用在线等待,谢谢!

解决方案 »

  1.   

    用dir函数就行了,自己做个好像Window一样的搜索功能的窗体就行了。
    Dir 函数
          
    返回一个 String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。语法Dir[(pathname[, attributes])]Dir 函数的语法具有以下几个部分:部分 描述 
    pathname 可选参数。用来指定文件名的字符串表达式,可能包含目录或文件夹、以及驱动器。如果没有找到 pathname,则会返回零长度字符串 ("")。 
    attributes 可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹配 pathname 但不包含属性的文件。  
    设置值attributes 参数的设置可为:常数 值 描述 
    vbNormal 0 (缺省) 指定没有属性的文件。 
    vbReadOnly 1 指定无属性的只读文件 
    vbHidden 2 指定无属性的隐藏文件 
    VbSystem 4 指定无属性的系统文件 
    vbVolume 8 指定卷标文件;如果指定了其它属性,则忽略vbVolume 
    vbDirectory 16 指定无属性文件及其路径和文件夹。 
    注意 这些常数是由 VBA 所指定的,在程序代码中的任何位置,可以使用这些常数来替换真正的数值。说明Dir 支持多字符 (*) 和单字符 (?) 的通配符来指定多重文件。 由于 Macintosh 不支持通配符,使用文件类型指定文件组。可以使用 MacID 函数指定文件类型而不用文件名。比如,下列语句返回当前文件夹中第一个TEXT文件的名称:Dir("SomePath", MacID("TEXT")) 为选中文件夹中所有文件,指定一空串:Dir("")在 Microsoft Windows 中,如果在Dir函数中使用MacID函数,将产生错误。任何大于256的attribute值都被认为是MacID 函数的值。在第一次调用 Dir 函数时,必须指定 pathname,否则会产生错误。如果也指定了文件属性,那么就必须包括 pathname。Dir 会返回匹配 pathname 的第一个文件名。若想得到其它匹配 pathname 的文件名,再一次调用 Dir,且不要使用参数。如果已没有合乎条件的文件,则 Dir 会返回一个零长度字符串 ("")。一旦返回值为零长度字符串,并要再次调用 Dir 时,就必须指定 pathname,否则会产生错误。不必访问到所有匹配当前 pathname 的文件名,就可以改变到一个新的 pathname 上。但是,不能以递归方式来调用 Dir 函数。以 vbDirectory 属性来调用 Dir 不能连续地返回子目录。提示 由于文件名并不会以特别的次序来返回,所以可以将文件名存储在一个数组中,然后再对这个数组排序。
      

  2.   

    用递归查找...Private Sub Command1_Click()
        Dim fs As New FileSystemObject  ' 建立FileSystemObject
        Dim fd As Folder    ' 定义 Folder 对象
        Dim sfd As Folder    Set fd = fs.GetFolder("c:\")
        Command1.Enabled = False
        Screen.MousePointer = vbHourglass
        FindFile fd, Text1.Text
        Command1.Enabled = True
        Screen.MousePointer = vbDefault
    End SubSub FindFile(fd As Folder, FileName As String)
        Dim sfd As Folder, f As File    ' Part I¡要查找该文件夹的所有文件
        For Each f In fd.Files
            If UCase(f.Name) Like UCase(FileName) Then
                Debug.Print f.Path
                List1.AddItem f.Path
            End If
            DoEvents
        Next    ' Part II¡循环查找所有子文件夹
        For Each sfd In fd.SubFolders
            FindFile sfd, FileName  ' 循环查找
        Next
    End Sub
      

  3.   

    ●快速调用“查找文件对话框”   ’声明API函数   Declare Function ShellExecute Lib "shell32.dll" Alias _     "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation _     As String, ByVal lpFile As String, ByVal lpParameters _     As String, ByVal lpDirectory As String, ByVal nShowCmd _     As Long) As Long   ’定义常量参数   Const SW_SHOW = 5   ’通用调用查找对话框函数   Public Sub ShowFindDialog(Optional InitialDirectory As String)   ShellExecute 0, "find", _    IIf(InitialDirectory = "", "", InitialDirectory), _    vbNullString, vbNullString, SW_SHOW   End Sub   ’调用查找对话框例程   Call ShowFindDialog("C:\Program Files")   调用的代码ShowFindDialog("C:\Program Files"),非常简练。注意:如果括号中的参数不是一个合法的目录名,这一行调用命令将不会产生任何结果。如果参数为空,就等于选择了当前目录。
      

  4.   

    ●快速调用“查找文件对话框”   ’声明API函数   Declare Function ShellExecute Lib "shell32.dll" Alias _     "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation _     As String, ByVal lpFile As String, ByVal lpParameters _     As String, ByVal lpDirectory As String, ByVal nShowCmd _     As Long) As Long   ’定义常量参数   Const SW_SHOW = 5   ’通用调用查找对话框函数   Public Sub ShowFindDialog(Optional InitialDirectory As String)   ShellExecute 0, "find", _    IIf(InitialDirectory = "", "", InitialDirectory), _    vbNullString, vbNullString, SW_SHOW   End Sub   ’调用查找对话框例程   Call ShowFindDialog("C:\Program Files")   调用的代码ShowFindDialog("C:\Program Files"),非常简练。注意:如果括号中的参数不是一个合法的目录名,这一行调用命令将不会产生任何结果。如果参数为空,就等于选择了当前目录。
      

  5.   

    对不起各位,我水平差对于kissoflife(明月高楼休独倚,酒入愁肠,化作相思泪!) 的没有做出来,是因为在API中找不见“ShellExecute”不能运行。对于 MSTOP(陈建华) 是因为Dim fs As New FileSystemObject  在快速提示帮助里没有FileSystemObject是不是需要在“工程”->引用->中引用什么请指教。谢谢!!!
      

  6.   

    FileSystemObject
    在工程”->引用
    引用 microsoft scripting runtime