h111666b 发表于 2021-10-21 11:49:51

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

本帖最后由 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
                        If $File[$i] = $FileName Then
                              MsgBox(0, $i, $Path & "\" & $File[$i])
                        Else
                              $Array = StringSplit($Path, "", 1)
                              If $Array < $Layer Then
                                        FindFile($Path & "\" & $File[$i], $FileName, $Layer)
                              EndIf
                        EndIf
                Next
      EndIf
EndFunc   ;==>FindFile


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


afan 发表于 2021-10-21 12:03:42

$Array = StringSplit($Path, "", 1) 这行是不是掉了个“\”$Array = StringSplit($Path, "\", 1)

zghwelcome 发表于 2021-10-21 13:54:50

多看帮助文档

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

h111666b 发表于 2021-10-21 15:52:08

感谢超版,是少了个“\”,现在目录层数对了,但还是搜索不到C:\Windows\System32文件夹内的文件

afan 发表于 2021-10-21 15:57:16

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

前面加一行
DllCall('kernel32.dll', 'Bool', 'Wow64DisableWow64FsRedirection', 'ptr', '')
试试

h111666b 发表于 2021-10-21 16:09:16

随便使用了个脚本测试,没有添加禁用系统文件重定向,感谢超版支持,问题解决了
页: [1]
查看完整版本: [已解决]怎么搜索C盘目录文件,和指定搜索目录层