50分。如何实现类似windows搜索文件的功能,主要是针对文件中包含的文字进行模糊查询搜索。

dljinsui 2003-11-16 01:44:53
如题所示!!!

最好有例程供学习。

MAIL:chenliang@cndevx.com
...全文
149 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
dljinsui 2003-11-21
  • 打赏
  • 举报
回复
已经结过了,怎么还能发?
贴前面已经有了对号了啊。
dljinsui 2003-11-20
  • 打赏
  • 举报
回复
好了,完成了,还是用递归。
online 2003-11-20
  • 打赏
  • 举报
回复
可以调用windows的文件查找功能

Private Const SW_SHOWNORMAL = 1
Private Const SW_SHOWMINIMIZED = 2
Private Const SW_SHOWMAXIMIZED = 3
Private Const SW_SHOW = 5
Private Const SW_MINIMIZE = 6
Private Const SW_SHOWMINNOACTIVE = 7
Private Const SW_SHOWNA = 8
Private Const SW_RESTORE = 9
Private Const SW_SHOWDEFAULT = 10

Private Sub Command1_Click()
Dim strPathToSearch As String
strPathToSearch = "C:\"
Call ShellExecute(Me.hwnd, "find", strPathToSearch, vbNullString, vbNullString, SW_SHOWNORMAL)
boydgmx 2003-11-20
  • 打赏
  • 举报
回复
其实我早就有递归遍历文件系统的代码了,
主要还是希望你能自己研究研究,也提高提高,呵呵 :)

既然你已经完成了,那就把我写的贴出来,仅供参考:

'文件系统递归遍历
Private Sub DoRecursion(ByVal Source As String)
Dim f, fc
Set CurrFolder = FSys.GetFolder(Source)

If CurrFolder.Attributes <> (System Or Hidden Or Directory) Then
If CurrFolder.Files.Count > 0 Then
Set fc = CurrFolder.Files
For Each f In fc
If f.Attributes <> (System Or Hidden) Then
'do what you want
End If
Next
End If

'当前文件夹下还有子文件夹
If CurrFolder.SubFolders.Count > 0 Then
Set fc = CurrFolder.SubFolders
For Each f In fc
Call DoRecursion(f) '递归调用
Next
End If
End If
End Sub

****************************************************************
郑重地提醒一句:结贴吧(不管给我多少分都无所谓,因为你已经完成了)!
如果还有关于文件系统的问题,邮件联系:boydgmx@chsi.com.cn
****************************************************************
Wang_xiaoni 2003-11-19
  • 打赏
  • 举报
回复
用文件查找findfirstfile,findnext打文件,然后再用流打开文件,进行匹配
dljinsui 2003-11-19
  • 打赏
  • 举报
回复
如果可以,分全部UP给你。
dljinsui 2003-11-19
  • 打赏
  • 举报
回复
楼上的朋友能不能帮我搞定这个问题,现在只能找出搜索范围内第一级的文件名,能不能遍历所有它底级文件夹?
boydgmx 2003-11-19
  • 打赏
  • 举报
回复
'搜索文件夹
'事先添加引用:Microsoft Scripting Runtime
Private Sub Command1_Click()
Dim FSys As New FileSystemObject
Dim CurrFolder As Folder
Dim f As Folder
Dim fc As Folders

Set CurrFolder = FSys.GetFolder("D:\test")
Set fc = CurrFolder.SubFolders

For Each f In fc
If InStr(f.Name, "要搜索的文本") Then
'do what you want
End If
Next

End Sub

'那边我已经贴过一次了,不要两边都给分哦,会扣信誉值的!!
dreamtou 2003-11-19
  • 打赏
  • 举报
回复
找文件网上很多的,用findfirstfile,findnext,写个递归函数,就可以了
如果要找文件中的内容,就先把找到的文件用流打开文件,进行匹配,一定要用流打开
dljinsui 2003-11-19
  • 打赏
  • 举报
回复
我只是想把文件夹找出来而已,有那么麻烦吗?
nik_Amis 2003-11-19
  • 打赏
  • 举报
回复
index server通常指NT时代的服务
nik_Amis 2003-11-19
  • 打赏
  • 举报
回复
indexing service
全文搜索服务
piccologoo 2003-11-19
  • 打赏
  • 举报
回复
你可以使用index service,具体可以去msdn搜索,
index serviveing
dljinsui 2003-11-19
  • 打赏
  • 举报
回复
有没有例子供学习一下。
查找文件已实现,
需要实现的是查询固定目录下与查询条件[text1.text]相匹配的文件夹。

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧