玩酷之家

 找回密码
 给爷来个号
查看: 1830|回复: 0

VB.NET 高效搜索指定文件夹下的文件

[复制链接]

20

主题

21

帖子

909

积分

高级会员

Rank: 4

积分
909
QQ
发表于 2019-2-18 18:08:40 | 显示全部楼层 |阅读模式
本帖最后由 1059-Studio 于 2019-3-13 09:31 编辑

这个函数是根据网上的例子改制而来,充分利用 .NET 库进行高效搜索文件

【在 VS代码编辑器 中 的样子】
Print Screen 1.png

【代码文本】图片懒得更新,以下方文本为准
  1. Public Sub GetAllFiles(ByVal 要搜索的目录 As String)
  2.         If FileIO.FileSystem.DirectoryExists(要搜索的目录) = True Then
  3.             Dim 文件 As System.IO.FileInfo
  4.             Dim 子目录 As System.IO.DirectoryInfo
  5.             Dim 目录 As New System.IO.DirectoryInfo(要搜索的目录)

  6.             For Each 文件 In 目录.GetFiles("*.*")   '如果仅搜索一种后缀的文件则在这里填写该种后缀,并删除下面的 Select Case 结构,理论上速度最快
  7.                 On Error GoTo jx1
  8.                 '使用 文件.FullName 获取文件完整路径,使用 文件.Name 获取文件名,使用 文件.Extension 获取文件后缀
  9.                 Select Case 文件.Extension   '如果要搜索多种后缀的文件则写在这里的 Select Case 语句中,上面一句应保持搜索“*.*”,理论上这会降低速度
  10.                     Case ".mp3"

  11.                     Case ".mp4"

  12.                 End Select
  13. jx1:        Next   '如果多种后缀需要在搜索时就进行排序可以将这个 For Each 结构多写几遍,理论上对速度没有影响

  14.             For Each 子目录 In 目录.GetDirectories   '如果不需要搜索子目录则将这个 For Each 结构删除
  15.                 On Error GoTo jxzml
  16.                 GetAllFiles(子目录.FullName)   '引用自身继续搜索子目录中的文件
  17. jxzml:      Next

  18.         Else
  19.             MsgBox("该目录不存在", MsgBoxStyle.Critical)   '如果指定的目录不存在时触发
  20.         End If
  21.     End Sub
复制代码
湖边的稻草 1059 Studio
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 给爷来个号

本版积分规则

QQ|Archiver|手机版|小黑屋|玩酷之家 ( 鄂ICP备14012049号-1 )|

GMT+8, 2020-8-5 12:35 , Processed in 1.076402 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表