爱问 爱问共享资料 爱问分类

vb怎么实现扫描指定文件夹下的所有文件,

首页
好评回答
  • 2019-03-09 12:54:49
      在VB6中,找(或新建)个模块,把如下代码放进去: 
    Private?Type?SearchFilesDynamicDatas
    ????Results?????As?Collection
    ????CallTimes???As?Long
    ????CanCallBack?As?Boolean
    End?Type
    Private?SFDD?As?SearchFilesDynamicDatas
    Public?Function?SearchFiles(ByVal?InWhichPath?As?String,?ByRef?LikeFormat?As?Variant,?Optional?ByVal?IncludeChildrenPath?As?Boolean?=?False,?_
    ????????????????????????????Optional?ByRef?CallBackObject?As?Object?=?Nothing,?Optional?ByVal?CallBackMethodName?As?String?=?"FileSearching")?As?Collection
    ????Dim?P?As?String,?Paths?As?Collection,?I?As?Long,?PR?As?Collection,?J?As?Long,?Cancel?As?Boolean
    ????On?Local?Error?Resume?Next
    ????
    ????If?SFDD。
      CallTimes?=?0?Then
    ????????CallByName?CallBackObject,?CallBackMethodName,?VbMethod
    ????????SFDD。CanCallBack?=?Err。
      Number?=?449
    ????????Set?SFDD。Results?=?New?Collection
    ????End?If
    ????SFDD。CallTimes?=?SFDD。
      CallTimes? ?1?????'调用本函数:开始 1,结束-1,用以判断是外部调用,还是本函数自己的嵌套调用
    ????
    ????'查找文件和目录
    ????Set?Paths?=?New?Collection
    ????P?=?Dir(InWhichPath?&?"*。
      *",?vbNormal?Or?vbHidden?Or?vbReadOnly?Or?vbSystem?Or?vbDirectory)
    ????While?Len(P)?>?0
    ????????If?P??"。
      。"?Then
    ????????????If?(GetAttr(InWhichPath?&?""?&?P)?And?vbDirectory)?=?vbDirectory?Then
    ????????????????Paths。
      Add?InWhichPath?&?""?&?P
    ????????????????If?Paths。Count?Mod?100?=?0?Then?DoEvents
    ????????????ElseIf?UCase(P)?Like?UCase(LikeFormat)?Then
    ????????????????SFDD。
      Results。Add?InWhichPath?&?""?&?P
    ????????????????If?SFDD。CanCallBack?=?False?Then?If?SFDD。Results。Count?Mod?100?Then?DoEvents
    ????????????End?If
    ????????????If?SFDD。
      CanCallBack?Then
    ????????????????CallByName?CallBackObject,?CallBackMethodName,?VbMethod,?InWhichPath?&?""?&?P,?Cancel
    ????????????????If?Cancel?Then?Exit?Function
    ????????????End?If
    ????????End?If
    ????????P?=?Dir
    ????Wend
    ????If?(Paths。
      Count?>?0)?And?IncludeChildrenPath?Then
    ????????For?I?=?1?To?Paths。Count
    ????????????SearchFiles?Paths(I),?LikeFormat,?True,?CallBackObject,?CallBackMethodName
    ????????Next
    ????End?If
    ????
    ????SFDD。
      CallTimes?=?SFDD。CallTimes?-?1
    ????If?SFDD。CallTimes?=?0?Then
    ????????Set?SearchFiles?=?SFDD。Results
    ????????Set?SFDD。
      Results?=?Nothing
    ????End?If
    ????Err。Clear
    End?Function
    然后,你可以调用SearchFiles函数来得到指定目录中的所有文件名符合指定格式的文件名的集合。
      
    参数,说明:
    InWhichPath:在哪个目录中搜索
    LikeFormat:搜索那种格式的文件名
    ????例如包含通配符的:"*。bmp"=搜索所有位图文件
    ????????????????????????????????"A??C*。
      txt"=搜索所有第一个字母为A,第4个字母为C的文本文件
    ????????????????????????????????"*。*"=所有文件
    IncludeChildrenPath:是否包含子目录(可选参数,默认不包含子目录)
    CallBackObject:回调函数对象(可选参数,默认为无回调对象),该参数可以为窗体实例或支持事件回调的类实例。
      
    CallBackMethodName:回调函数名(可选参数,默认名为:FileSearching)
    ????CallBackObject和CallBackMethodName必须成对使用,否则将不会回调。
      
    ????例如回调函数在Form1中,则需要在Form1中编写如下代码:
    ????????Public?Sub?FileSearching(ByVal?FullName?As?String,ByRef?Cancel?As?Boolean)
    ????????????'FullName:刚刚搜索到的文件全名(包含路径和文件名),你可以用来显示在某处
    ????????????'Cancel:是否取消搜索过程
    ????????End?Sub
    函数返回值:
    ????类型:集合(Collection),如果不会用集合,去查MSDN。
      
    ????子集:所有搜索到的文件全名(包含路径和文件名)
    这个函数我一边写,一边调试,已经没有问题了,可以正常使用,但某些你的程序没有权限读写的目录是搜不出来东西的。

    Jennif...

    2019-03-09 12:54:49

其他答案

    2019-03-09 12:23:16
  • 在VB中最简单的扫描文件的命令是Dir命令。你可以做一个递归函数并使用Dir命令来做此事,具体代码我就不写了。

    无欲无求无病

    2019-03-09 12:23:16

  • 2019-03-09 12:10:47
  • http://blog.csdn.net/u013586869/article/details/54561412 
    下载了以后里面有个user/pro/sd.exe可以调用

    wei桃明

    2019-03-09 12:10:47

类似问题

换一换
  • 办公软件 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

  • 根据医学资料记载

    B.20世纪上半叶,人类经历了两次世界大战,大量的青壮年人口死于战争;而20世纪下半叶,世界基本处于...

    公务员考试

  • 世界上海鸟多少种 国内海鸟多少种

    海鸟的种类约350种,其中大洋性海鸟约150种。比较著名的海鸟有信天翁、海燕、海鸥、鹈鹕、鸬鹚、鲣鸟...

    花鸟鱼虫

  • 铝铸件碰水为何生白锈,咋解决??

    铝属于两性金属,遇到酸性或碱性都会产生不同程度的腐蚀,尤其是铝合金铸件的孔隙较多,成分中还含有硅和几...

    工程技术科学

  • 小天鹅洗衣机

    嫌麻烦就把你洗衣机的型号或断皮带,拿到维修点去买1个,自己装上就可以了(要有个小扳手把螺丝放松,装上...

    购物

  • 一元二次方程里面的x1x2=多少还有是x...

    x1×x2等于(b∧2-(b∧2-4ac))/(4a∧2)就等于ac,x1+x2就等于-b/a

    数学

  • 9的99次方除以10的余数是多少这怎么算...

    这个可以用牛顿的二项式定理,就是(10-1)∧99,最后一项是-1,所以余数是9

    数学

  • 计算机中“几分之几”的符号是什么?

    它就是“/”,在数学书写中我们中的时横杠,只是在计算机中为了对称美所以用“/”

    数学

  • 非奇非偶函数乘以奇函数是奇函数么?

    非奇非偶函数它乘以一个奇函数不一定一个奇函数,设g(x)为非奇非偶函数,×奇函数f(x),则f(x)...

    数学

  • 怎么让蚕宝宝快点孵出来

    这不可心急,只能遵循自然界的规律。满意请采纳,谢谢!

    育儿

  • 吉林快三中大奖如何找技巧规律?

    吉林快三中大奖说到底就是彩票能够使人一夜间改变自己的命运,没有一个买彩票的说我是为体育事业作贡献的,...

    博彩

  • 吉林快三怎么看出豹子如何找技巧规律?

    吉林快三怎么看出豹子说到底就是彩票能够使人一夜间改变自己的命运,没有一个买彩票的说我是为体育事业作贡...

    博彩

  • 吉林快三全是红号如何找技巧规律?

    吉林快三全是红号玩几期就会找到规律,当然是自己认为的拉,不是自己买来的教训不值钱就是这个道理,希望可...

    博彩

  • 吉林快三走势图怎嘛推算如何找技巧规律?

    吉林快三走势图怎嘛推算玩几期就会找到规律,当然是自己认为的拉,不是自己买来的教训不值钱就是这个道理,...

    娱乐休闲

  • 吉林快三10年开奖记录如何找技巧规律?

    吉林快三10年开奖记录玩几期就会找到规律,当然是自己认为的拉,不是自己买来的教训不值钱就是这个道理,...

    博彩

正在加载...

爱问推荐

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈
关注
爱问

关注爱问微信公众号,开启知识之旅,随时随地了解最新资讯。

确定举报此问题

举报原因(必选):