找回密码
 加入
搜索
查看: 1939|回复: 3

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

[复制链接]
发表于 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[0]
        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 编辑 ]
发表于 2008-10-10 16:39:12 | 显示全部楼层

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

只是利用了一个DOS命令!要学会修改.........
发表于 2008-10-11 19:09:00 | 显示全部楼层
$foo = Run(@ComSpec & " /c dir /b /s /a:d " & $File, $Drive[$I] & "", @SW_HIDE, $STDOUT_CHILD)

我试验了一下发现 将$foo返回的字符串 删除最后两个字符后 得到的新字符串 就是返回的文件路径
可以引用此路径打开文件夹 ,具体为什么要删除最后两个字符 我就不知道了 呵呵
 楼主| 发表于 2008-10-13 11:38:52 | 显示全部楼层
实验成功,谢谢了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-19 14:33 , Processed in 0.077021 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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