找回密码
 加入
搜索
查看: 2456|回复: 8

[AU3基础] 请教如何获取指定文件所在目录

[复制链接]
发表于 2011-2-9 00:27:40 | 显示全部楼层 |阅读模式
本程序所在目录下有若干个子文件夹,但知道指定文件a.txt只有一个并在这其中的一个子文件夹里,请教如何知道该文件所在的子文件名和详细路径?
 楼主| 发表于 2011-2-9 08:21:08 | 显示全部楼层
有人来帮一下吗?
 楼主| 发表于 2011-2-9 08:21:47 | 显示全部楼层
有人来帮一下吗?
 楼主| 发表于 2011-2-9 13:30:24 | 显示全部楼层
再顶    高手来帮一下!
发表于 2011-2-9 14:00:01 | 显示全部楼层
$sFile = "a.txt";指定要搜索的文件

$sDir = @ScriptDir;指定搜索的文件夹
If StringRight($sDir,1)<>"\" Then $sDir &= "\"

;生成一个不存在临时文件
$sOutFile = @TempDir & "\~temp$$$$0"
FileDelete($sOutFile)
While FileExists($sOutFile)
        $sOutFile = StringTrimRight($sOutFile,1) & StringRight($sOutFile,1)+1
        FileDelete($sOutFile)
WEnd

;执行文件搜索(含子目录)
RunWait(@COMSPEC & ' /c dir /a /s /b "' & $sDir & $sFile & '" > "' & $sOutFile & '"', "", @SW_HIDE)

;得到结果
$sReadFile = FileRead($sOutFile, FileGetSize($sOutFile))
If StringInStr($sReadFile, $sFile) Then
        ConsoleWrite("找到文件所处位置:" & $sReadFile & @CRLF);文件所处文件夹: StringTrimRight($sReadFile, stringlen($sFile))
Else
        ConsoleWrite($sFile & "在文件夹[" & $sDir & "](含子目录)中没有找到")
EndIf
 楼主| 发表于 2011-2-9 15:56:48 | 显示全部楼层
谢谢楼上的这位朋友。
不知道有 没有简洁点的方法,机器上CMD被禁止了。求解!
发表于 2011-2-9 18:18:07 | 显示全部楼层
#include <File.au3>

_Filefind("E:\TEST");在AU3程序目录下执行的话,此处测试路径改为@ScriptDir应该是可以的。
MsgBox(0,0, 'done')

Func _Filefind($_Path)
        $folder = _FileListToArray($_Path, "*", 2);找文件夹
        If Not IsArray($folder) Then Return 0
        For $i = 1 To $folder[0]
                        $newPath = $_Path & "\" & $folder[$i]
                        $file = _FileListToArray($newPath, "a.txt", 1);找满足条件的文件
                        If @error = 0 Then
                                MsgBox(0,0,$newPath)
                                ShellExecute($newPath&"\a.txt",0)
                               
                        Else
                                _Filefind($newPath);当前目录下找不到再继续其它路径找
                        EndIf
                       
                Next
               
EndFunc   ;==>_Filefind
发表于 2011-2-9 18:20:07 | 显示全部楼层
以前得到别人的帮助,希望这次能帮到别人。另外论坛里搜索一下,也是能找到类似的。改一下就应该可以的。
发表于 2011-2-9 19:14:35 | 显示全部楼层
获取路径(排除文件名)吗?
#Include <WinAPIEx.au3>
_WinAPI_PathRemoveFileSpec
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-21 13:40 , Processed in 0.078140 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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