| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6321 人关注过本帖
标题:[求助]高手们:如何实现VB模糊搜索文件
只看楼主 加入收藏
lzm
Rank: 1
来 自:广东
等 级:新手上路
帖 子:156
专家分:0
注 册:2007-9-2
结帖率:33.33%
收藏
 问题点数:0 回复次数:6 
[求助]高手们:如何实现VB模糊搜索文件
就是想用VB实现像系统搜索文件一样的功能,功能要求不高:只要能把D盘里所有文件夹中文件名为STR*.*的文件都搜索出来就行了,最好是写成一个函数.谁可以帮忙编写下,或者找到相关的资料也行.谢谢!
搜索更多相关主题的帖子: 文件 搜索 模糊 
2008-12-15 15:26
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
一个函数能实现的话,我也想要....呵呵
这个写起来还是很复杂的...给你一个函数,你举一反三吧
给你一个递归调用VB自带函数查找文件的函数TreeSearch。
Public Function TreeSearch(ByVal sPath As String, ByVal sFileSpec As String, sFiles() As String) As Long
    Static lngFiles As Long '文件数目
    Dim sDir As String
    Dim sSubDirs() As String '存放子目录名称
    Dim lngIndex As Long
    Dim lngTemp&
    If Right(sPath, 1) <> "\" Then sPath = sPath & "\"
    sDir = Dir(sPath & sFileSpec)
   '获得当前目录下文件名和数目
    Do While Len(sDir)
      lngFiles = lngFiles + 1
      ReDim Preserve sFiles(1 To lngFiles)
      sFiles(lngFiles) = sPath & sDir
      sDir = Dir
    Loop
   '获得当前目录下的子目录名称
    lngIndex = 0
    sDir = Dir(sPath & "*.*", vbDirectory)
    Do While Len(sDir)
      If Left(sDir, 1) <> "." And Left(sDir, 1) <> ".." Then '' 跳过当前的目录及上层目录
     '找出子目录名
        If GetAttr(sPath & sDir) And vbDirectory Then
          lngIndex = lngIndex + 1
         '保存子目录名
          ReDim Preserve sSubDirs(1 To lngIndex)
          sSubDirs(lngIndex) = sPath & sDir & "\"
        End If
      End If
      sDir = Dir
    Loop
    For lngTemp = 1 To lngIndex
      '利用递归方法查找每一个子目录下文件
      Call TreeSearch(sSubDirs(lngTemp), sFileSpec, sFiles())
    Next lngTemp
    TreeSearch = lngFiles
  End Function

[[it] 本帖最后由 不说也罢 于 2008-12-15 17:44 编辑 [/it]]

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2008-12-15 17:29
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
收藏
得分:0 
什么?这个函数不会用?那下面我给你一个例子吧
先把上面的函数复制到代码的通用模块部分,或者单独存为一个.bas文件
在工程中新建一个窗体,添加一个Command控件名称为Command1和一个ListBox控件,名称为List1。把下面的代码添加到窗体的代码中:
[hide]Private Sub Command1_Click() '这个过程会遍历C:\windows下的所有文件
Dim ff() As String '定义一个字符串数组用来保存找到的文件名称
Dim fn As Long '保存找到的文件数目
For j = 1 To 10000
DoEvents
Next j
fn = TreeSearch("C:\windows", "*.*", ff())

For i = 1 To fn
List1.AddItem ff(i)
Next
MsgBox "找到文件数目为" & fn
End Sub
[/hide]
收到的鲜花
  • lzm2009-02-17 13:59 送鲜花  3朵   附言:我很赞同

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2008-12-15 17:58
allanwu244
Rank: 2
等 级:论坛游民
帖 子:134
专家分:20
注 册:2007-7-24
收藏
得分:0 
我也需要隐藏的看看

边学边做,天天向上.
2008-12-15 19:46
十斤月
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-12-16
收藏
得分:0 
学习了
2008-12-16 11:27
lifnch
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-10-7
收藏
得分:0 
2016-10-09 22:10
lifnch
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-10-7
收藏
得分:0 
回复 6楼 lifnch
好象不行啊
2016-10-09 22:42
快速回复:[求助]高手们:如何实现VB模糊搜索文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025744 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved