touch_xu 发表于 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
        $result:为搜索到的匹配个数
#CE

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

afan 发表于 2010-10-27 11:30:16

问题出在这 If StringRight($FileList[$i], 4) = $type Then

allchn 发表于 2010-10-27 11:55:11

这个函数很不严谨,比如一个不匹配你的扩展名的文件,而且指定了搜索子目录,结果还要把它当路径处理进行搜索,不知道会是什么结果,但是逻辑上通不过

touch_xu 发表于 2010-10-27 13:46:58

小弟肯求大侠们有没有高快速高效严谨的搜索算法,望赐教

3mile 发表于 2010-10-27 13:51:43

递归搜索*.*,满足条件1、后缀不为空2、文件属性不为‘D’。

afan 发表于 2010-10-27 13:53:36

LZ静下心来,到这里好好学习下 http://www.autoitx.com/forum.php?mod=viewthread&tid=12130

touch_xu 发表于 2010-11-6 00:51:52

谢谢,已解决
页: [1]
查看完整版本: 【已解决】用".*"搜索文件问题