找回密码
 加入
搜索
查看: 3879|回复: 6

[效率算法] 【已解决】用".*"搜索文件问题

  [复制链接]
发表于 2010-10-27 11:15:15 | 显示全部楼层 |阅读模式
本帖最后由 touch_xu 于 2010-11-6 00:52 编辑

如下代码用用".*"搜索文件为什么没有结果,但是单个的如.txt,就能有结果.我想一次找多种类型的就不行吗,大家有什么好的快的方法啊^-^
#CS
        _Find($path, $type, $flag,ByRef $result)
        说明:
        $path:表示要搜索的位置,如"E:\abc",表示E盘下的abc文件夹,路径的末尾请勿加斜杠;
        $type:表示文件类型,如".exe",一定要带点;
        $flag:值为0,代表仅搜索该目录,不包括子目录;值为1,代表搜索该目录及其以下的所有子目录;
        $result:表示要引用的数组,用来存放搜索结果,请先初始化要引用的数组为只拥有一个元素,如  Dim $get[1]
        $result[0]:为搜索到的匹配个数
#CE

Func _Find($path, $type, $flag, ByRef $result)
        $FileList = _FileListToArray($path)
        If Not @error Then
                For $i = 1 To $FileList[0] Step 1
                        If StringRight($FileList[$i], 4) = $type Then
                                _ArrayAdd($result, $path & "" & $FileList[$i])
                                $result[0] = UBound($result) - 1
                        Else
                                If $flag == 1 Then
                                        _Find($path & "" & $FileList[$i], $type, $flag, $result)
                                EndIf
                        EndIf
                Next
        EndIf
EndFunc   ;==>_Find

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-10-27 11:30:16 | 显示全部楼层
问题出在这 If StringRight($FileList[$i], 4) = $type Then
发表于 2010-10-27 11:55:11 | 显示全部楼层
这个函数很不严谨,比如一个不匹配你的扩展名的文件,而且指定了搜索子目录,结果还要把它当路径处理进行搜索,不知道会是什么结果,但是逻辑上通不过
 楼主| 发表于 2010-10-27 13:46:58 | 显示全部楼层
小弟肯求大侠们有没有高快速高效严谨的搜索算法,望赐教
发表于 2010-10-27 13:51:43 | 显示全部楼层
递归搜索*.*,满足条件1、后缀不为空  2、文件属性不为‘D’。
发表于 2010-10-27 13:53:36 | 显示全部楼层
LZ静下心来,到这里好好学习下 http://www.autoitx.com/forum.php?mod=viewthread&tid=12130
 楼主| 发表于 2010-11-6 00:51:52 | 显示全部楼层
谢谢,已解决
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 07:35 , Processed in 0.084157 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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