找回密码
 加入
搜索
查看: 1143|回复: 5

[网络通信] [已解决]怎么搜索C盘目录文件,和指定搜索目录层

[复制链接]
发表于 2021-10-21 11:49:51 | 显示全部楼层 |阅读模式
本帖最后由 h111666b 于 2021-10-21 16:10 编辑

贴上脚本

#include <File.au3>

;指定要搜索的文件和搜索层数
FindFile("E:", "Hash.exe", 10)

Func FindFile($Path, $FileName, $Layer)
        $File = _FileListToArray($Path)
        If Not @error Then
                For $i = 1 To $File[0]
                        If $File[$i] = $FileName Then
                                MsgBox(0, $i, $Path & "\" & $File[$i])
                        Else
                                $Array = StringSplit($Path, "", 1)
                                If $Array[0] < $Layer Then
                                        FindFile($Path & "\" & $File[$i], $FileName, $Layer)
                                EndIf
                        EndIf
                Next
        EndIf
EndFunc   ;==>FindFile


以上脚本能搜索3层目录及以上目录文件,但数值为什么不是3而是10,数值16可以搜索4层,问题是搜索不到C:\Windows\System32和其它类似C:\Windows\之下目录内的文件


发表于 2021-10-21 12:03:42 | 显示全部楼层
$Array = StringSplit($Path, "", 1) 这行是不是掉了个“\”  $Array = StringSplit($Path, "\", 1)
发表于 2021-10-21 13:54:50 | 显示全部楼层
多看帮助文档

_FileListToArrayRec($sPath, $sFileName, 1, -10, 0, 2)

 楼主| 发表于 2021-10-21 15:52:08 | 显示全部楼层
感谢超版,是少了个“\”,现在目录层数对了,但还是搜索不到C:\Windows\System32文件夹内的文件
发表于 2021-10-21 15:57:16 | 显示全部楼层
h111666b 发表于 2021-10-21 15:52
感谢超版,是少了个“\”,现在目录层数对了,但还是搜索不到C:\Windows\System32文件夹内的文件

前面加一行
DllCall('kernel32.dll', 'Bool', 'Wow64DisableWow64FsRedirection', 'ptr', '')
试试
 楼主| 发表于 2021-10-21 16:09:16 | 显示全部楼层
随便使用了个脚本测试,没有添加禁用系统文件重定向,感谢超版支持,问题解决了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-22 21:17 , Processed in 0.081882 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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