它没有采用任何的控件形式,也没有调用系统API函数FindFirst,FindNext进行递归调用,和别人有点不同的就是我用的是VB中的Dir()函数。事实上,直接采用Dir()函数是不能进行自身的递归的调用的,但我们可以采用一种办法把Dir将当前搜索目录的子目录给保存下来,然后在自身的search(strPathName)递归函数中依次进行递归的调用,这样就可以把指定的目录搜索完毕。
具体代码如下:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'函数GetExtName
'功能:得到文件后缀名(扩展名)
'输入:文件名
'输出:文件后缀名(扩展名)

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Public Function GetExtName(strFileName As String) As String
    Dim strTmp As String
    Dim strByte As String
    Dim i As Long
    For i = Len(strFileName) To 1 Step -1
        strByte = Mid$(strFileName, i, 1)
        If strByte <> "." Then
            strTmp = strByte + strTmp
        Else
            Exit For
        End If
    Next i
    GetExtName = strTmp
End Function

Public Function search(ByVal strPath As String, Optional strSearch As String = "") As Boolean
    Dim strFileDir() As String
    Dim strFile As String
    Dim i As Long

Dim lDirCount As Long
    On Error GoTo MyErr
    If Right$(strPath, 1) <> "\" Then strPath = strPath + "\"
    strFile = Dir(strPath, vbDirectory Or vbHidden Or vbNormal Or vbReadOnly)
    While strFile <> "" '搜索当前目录
        DoEvents
        If (GetAttr(strPath + strFile) And vbDirectory) = vbDirectory Then '如果找到的是目录
            If strFile <> "." And strFile <> ".." Then '排除掉父目录(..)和当前目录(.)
                lDirCount = lDirCount + 1 '将目录数增1
                ReDim Preserve strFileDir(lDirCount) As String
                strFileDir(lDirCount - 1) = strFile '用动态数组保存当前目录名
            End If
        Else
            If strSearch = "" Then
                Form1.List1.AddItem strPath + strFile
            ElseIf LCase$(GetExtName(strPath + strFile)) = LCase$(GetExtName(strSearch)) Then
                '满足搜索条件,则处理该文件
                Form1.List1.AddItem strPath + strFile '将文件全名保存至列表框List1中
            End If
        End If
        strFile = Dir
    Wend
    For i = 0 To lDirCount - 1
        Form1.Label3.Caption = strPath + strFileDir(i)
        Call search(strPath + strFileDir(i), strSearch) '递归搜索子目录
    Next
    ReDim strFileDir(0) '将动态数组清空
    search = True '搜索成功
    Exit Function
MyErr:
    search = False '搜索失败
End Function

摘自:网络整理

相关文章参考1:

※VB获取windows各常用目录的函数(模块)

※怎样用VB获得Windows各类系统目录

※VB判断文件及目录的存在性

※谈vb目录文件操作的三种方法-1

※谈vb目录文件操作的三种方法-2

※VB 使用SendMessage枚举文件与目录

相关文章参考2:

※一个通用的VB磁盘文件搜索引擎类※

※利用VB函数Dir()实现递归搜索目

※VB 获得磁盘的文件系统

相关函数文章参考:


※VB 获取Textbox文本框中的行数函数

【VB】StrConv函数.

VB获取windows各常用目录的函数(模块)

VB:常用内部函数大全,你会了几个呢?

VB后台获得按键,并执行自己的函数(非钩子及热键)

※利用VB函数Dir()实现递归搜索目

※巧用SendMessage函数扩展Treeview功能

※比CopyMemory还要快的函数SuperCopyMemory

※VB利用API函数来处理文件

※利用VB函数Dir()实现递归搜索目录

※利用API函数计算程序运行时间VB

※利用VB函数Dir()实现递归搜索目录

※VB Environ系统环境变量函数大全

※VB 创建快捷方式函数(可带参数)


VB部分相关文章推荐:

★VB小技巧:字符变量中双引号的输入

★VB将自定义资源中的文件释放出来

★VB在菜单上增加图标

★Visual Basic 十年风云

★VB表格控件总览与例程分析

★利用VB函数Dir()实现递归搜索目

★Visual Basic里与Print有关的函数

★VB输入文本文件实现右对齐

★VB查找替代字符串的函数

★vb 换行气泡提示类

更多精彩>>>

利用VB函数Dir()实现递归搜索目录相关推荐

  1. go errgroup 递归搜索目录中的Go文件

    为了测试sync.ErrGroup的所有功能,我写了一个小程序,用一个指定的模式递归搜索目录中的Go文件.这有助于在Go源代码树中查找已使用已弃用或更新的包的实例.要测试sync.ErrGroup的所 ...

  2. VB 使用SendMessage枚举文件与目录

    源码如下: Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (By ...

  3. 成功解决ImportError: cannot import name ‘spline‘ from ‘scipy.interpolate‘—利用make_interp_spline函数绘制平滑的曲线

    成功解决ImportError: cannot import name 'spline' from 'scipy.interpolate'-利用make_interp_spline函数绘制平滑的曲线 ...

  4. C#递归搜索指定目录下的文件或目录

    来源:https://www.cnblogs.com/huhangfei/p/5012978.html 诚然可以使用现成的Directory类下的GetFiles.GetDirectories.Get ...

  5. bat递归查找指定文件_Windows下递归搜索文件及其所在目录 .bat脚本实现

    [说明] 当我们要查找文件时,在 Linux 下可以使用 find 命令很方便的递归搜索到文件名含有某一关键字的文件及其件所在位置,如 图1 所示. 图1 但在Windows 系统中却并没有这样方便的 ...

  6. bat递归查找指定文件_bat递归查找指定文件_Windows下递归搜索文件及其所在目录 .bat脚本实现...

    [说明] 当我们要查找文件时,在 Linux 下可以使用 find 命令很方便的递归搜索到文件名含有某一关键字的文件及其件所在位置,如 图1 所示. 图1 但在Windows 系统中却并没有这样方便的 ...

  7. 利用API函数实现图像淡入淡出效果(VB)

    利用API函数实现图像淡入淡出效果     一般传统的实现两个PictureBox之间图像的淡入淡出效果都需要使用大量的API函数并进行复杂的调色板以及 绘图设备(Device Context)的操作 ...

  8. 搜索目录里所有文件(包括子目录)

    搜索目录里所有文件(包括子目录) 资料来源:http://www.cnblogs.com/jjwwww/archive/2004/09/04/39559.aspx 用到两个函数ParseDirecto ...

  9. php中glob怎么用,如何在php中利用glob函数对文件进行遍历

    如何在php中利用glob函数对文件进行遍历 发布时间:2020-12-11 16:02:47 来源:亿速云 阅读:76 作者:Leah 如何在php中利用glob函数对文件进行遍历?相信很多没有经验 ...

最新文章

  1. 基于SfM计算相机姿态
  2. 比特币现金诞生一周年,未来发展瞄上了IPFS技术
  3. p2p网络测试工具_自媒体 IPFS官方升级DHT方案,提升网络整体性能
  4. bool类型未初始化的产生的奇怪现象
  5. java 时钟 算法分析_java实现时钟方法汇总
  6. 如何学习-我是这样学JS理论![不看后悔篇]
  7. java新手笔记16 面积
  8. 腾讯痛下杀手,是时候让区块链回归技术和应用的本质了!
  9. 文档大小超出上传限制怎么办_一键PDF转Word、PPT、图片等文档,这才是办公族必备的效率神器!...
  10. PCL_PCLVisualizer在多线程中的使用问题(viewer spinOnce crash)
  11. android定位欺骗,1020. Android GPS定位欺骗(模拟定位)的3类途径4种方式
  12. 服务器运维故障处理案例
  13. Ubuntu 12.04安装QQ2012(12.10也可以,试过了的,其他版本没事过)
  14. MySQL_简易图书数据库管理系统_峰峰博客_峰峰吃芒果
  15. 血脂测试软件,血脂检测,最全解读!
  16. 二叉树:叶节点的一些操作
  17. 信号完整性之浅谈理解(一)
  18. Lambada表达式的用法
  19. bzoj2818: Gcd 莫比乌斯繁衍
  20. 深大和南科大计算机,南方科技大学和深圳大学,到底哪一所的性价比高呢

热门文章

  1. 华为发布全球首款 5G 汽车通讯硬件;今日头条系产品大裁员;三星手机推迟上市 | 极客头条...
  2. 雷军立 Flag:小米 5 年 100 亿 All in AIoT
  3. 马化腾怒怼张一鸣;中兴产品下架;微信整改小程序 | CSDN 极客头条
  4. 阳江口碑好的java培训价格
  5. Redis持久化的原理及优化
  6. JavaScript高级使用(一)--参数Arguments对象
  7. linux版本信息i686,Linux下如何查看版本信息
  8. 随机密码生成python_让“全家福”更加随机 —— 自动生成照片布局之Python实现...
  9. python如何把二进制转文本_在python3中如何把文本转换为二进制
  10. windows python安装包_Python-3.9安装包(windows版)