搜索了整版,发现了几个类似的问题,但功能似乎不全。
希望大家可以一起考虑一下,提供一个更完美的。
我想能不能:用vb代码实现一个跟windows搜索功能同样强大的搜索程序。
可以根据文件名、文件类型、时间、文件包含的一个字符(串)来搜索硬盘里的文件。包括doc、xls、ppt、wps等。
怎样能快速高效地执行这个功能?
希望大家可以一起考虑一下,提供一个更完美的。
我想能不能:用vb代码实现一个跟windows搜索功能同样强大的搜索程序。
可以根据文件名、文件类型、时间、文件包含的一个字符(串)来搜索硬盘里的文件。包括doc、xls、ppt、wps等。
怎样能快速高效地执行这个功能?
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,这个结构用于装载与找到的文件有关的信息
而且没有根据文件内容包含的词组搜索功能。