搜索了整版,发现了几个类似的问题,但功能似乎不全。
希望大家可以一起考虑一下,提供一个更完美的。
我想能不能:用vb代码实现一个跟windows搜索功能同样强大的搜索程序。
可以根据文件名、文件类型、时间、文件包含的一个字符(串)来搜索硬盘里的文件。包括doc、xls、ppt、wps等。
怎样能快速高效地执行这个功能?

解决方案 »

  1.   

    下载Google 桌面搜索工具http://desktop.google.com/zh/CN/?promo=app-gds-zh-cn-v1-1
      

  2.   

    用API函数'常数
    Const INVALID_HANDLE_VALUE = -1'定义自定义类型
    Private Type WIN32_FIND_DATA
        dwFileAttributes As Long
        ftCreationTime As FILETIME
        ftLastAccessTime As FILETIME
        ftLastWriteTime As FILETIME
        nFileSizeHigh As Long
        nFileSizeLow As Long
        dwReserved0 As Long
        dwReserved1 As Long
        cFileName As String * MAX_PATH
        cAlternate As String * 14
    End Type
    '声明API函数
    Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
    Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
    Public Declare Function FindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long
    FindFirstFile根据文件名查找文件返回
    Long,如执行成功,返回一个搜索句柄。如果出错,返回一个INVALID_HANDLE_VALUE常数,一旦不再需要,应该用FindClose函数关闭这个句柄
    参数
    lpFileName -----  String,欲搜索的文件名。可包含通配符,并可包含一个路径或相对路径名
    lpFindFileData -  WIN32_FIND_DATA,这个结构用于装载与找到的文件有关的信息。该结构可用于后续的搜索由这个函数返回的句柄可以作为一个参数用于FindNextFile函数。这样一来,就可以方便的枚举出与lpFileName参数指定的文件名相符的所有文件FindNextFile根据调用FindFirstFile函数时指定的一个文件名查找下一个文件
    返回
    Long,非零表示成功,零表示失败。如不再有与指定条件相符的文件,会将GetLastError设置成ERROR_NO_MORE_FILES
    参数
    hFindFile ------  Long,由FindFirstFile函数返回的搜索句柄
    lpFindFileData -  WIN32_FIND_DATA,这个结构用于装载与找到的文件有关的信息
      

  3.   

    是想看看做一个类似于“Google 桌面搜索”的东东是怎样的。木头人的代码试过了吗?好像不太对啊。
    而且没有根据文件内容包含的词组搜索功能。