wbsgege 发表于 2008-10-10 11:31:35

如何查找指定目录并返回该目录的所在位置

这个是查找指定文件并返回该文件路径的代码,是否有办法将它改为查找指定目录并返回指定目录的路径?

#NoTrayIcon

Opt("MustDeclareVars", 1)
#include <Constants.au3>

Local $Drive, $I, $File

$File = InputBox("输入", "输入要查找的文件名:", "", "", 180, 80, -1, -1)
If @error Or $File = "" Then Exit

$Drive = DriveGetDrive("FIXED")

For $I = 1 To $Drive
    Local $foo, $line, $lines
    $foo = Run(@ComSpec & " /c dir /b /s /a " & $File, $Drive[$I] & "\", @SW_HIDE, $STDOUT_CHILD)
    $lines = ""
    While 1
      $line = StdoutRead($foo)
      If @error Then ExitLoop
      $lines &= $line
    WEnd
    If $lines = "" Then
      MsgBox(16, "错误", "在驱动器" & $Drive[$I] & "没有找到要找的文件!", 2)
      ContinueLoop 1
    EndIf
    MsgBox(0, "找到的文件:", $lines)
Next


[ 本帖最后由 wbsgege 于 2008-10-13 11:39 编辑 ]

liongodmien 发表于 2008-10-10 16:39:12


    $foo = Run(@ComSpec & " /c dir /b /s /a:d " & $File, $Drive[$I] & "\", @SW_HIDE, $STDOUT_CHILD)

只是利用了一个DOS命令!要学会修改.........

runanchor 发表于 2008-10-11 19:09:00

$foo = Run(@ComSpec & " /c dir /b /s /a:d " & $File, $Drive[$I] & "", @SW_HIDE, $STDOUT_CHILD)

我试验了一下发现 将$foo返回的字符串 删除最后两个字符后 得到的新字符串 就是返回的文件路径
可以引用此路径打开文件夹 ,具体为什么要删除最后两个字符 我就不知道了 呵呵

wbsgege 发表于 2008-10-13 11:38:52

实验成功,谢谢了
页: [1]
查看完整版本: 如何查找指定目录并返回该目录的所在位置