找回密码
 加入
搜索
查看: 4328|回复: 7

如何获取文件夹名?[搞定]

[复制链接]
发表于 2008-5-15 16:16:38 | 显示全部楼层 |阅读模式
通过递归查找指定文件,问题是,如何获得该文件的详细文件路径?

[ 本帖最后由 netegg 于 2008-5-21 22:45 编辑 ]
发表于 2008-5-15 16:39:10 | 显示全部楼层
_filelist("F:\movie")

Func _filelist($searchdir)                          ;;;函数名(形参)
$search = FileFindFirstFile($searchdir & "\*.*")       ;;;;查找c:根目下的文件
If $search = -1 Then return -1                   ;;;;如果找不到,返回值 -1
While 1
    $file = FileFindNextFile($search)         ;;;查找下一个文件
    If @error Then                                        ;;;如果找不到文件

         FileClose($search)                             ;;;则关闭此句柄
         return                                                   ;;;返回
    Elseif  $file = "."  or $file = ".." Then    ;;如果找到的文件名为.或..则 ContinueLoop
         ContinueLoop                                    ;;;在某些版本的AU3里面可以不需要上行和这行。
    ElseIf stringinstr(FileGetAttrib($searchdir & "\" & $file),"D") then        ;;如果找到的是一个文件夹,则
         _filelist($searchdir & "\" & $file)    ;;递归调用filelist函数,并传参数  "$searchdir & "\" & $file"

    EndIf                                                          ;;;$file为查找到的文件夹名称,上一行意思就是进入此文件夹继续查找文件.如此循环
    ConsoleWrite( $searchdir & "\" & $file & @crlf )
WEnd
EndFunc
发表于 2008-5-15 21:45:38 | 显示全部楼层
很详细..
发表于 2008-5-16 10:33:37 | 显示全部楼层
先保存下来,或许以后用得着。 ^_^
 楼主| 发表于 2008-5-17 01:51:04 | 显示全部楼层
我要的是要查找的文件所在文件夹啊,换句话说,我需要的是指定一个文件名,如何获取路径,不用枚举这么麻烦吧
这个代码似乎是递归枚举文件夹中包含子目录的所有文件的文件名吧。


举个例子:比如firefox的设置文件pref.js在C:\Documents and Settings\[USER]\Application Data\Mozilla\Firefox\Profiles\*********.default文件夹中,现在,想要修改pref.js,需要知道前面的路径user好办,那个********怎么办?

[ 本帖最后由 netegg 于 2008-5-17 02:04 编辑 ]
发表于 2014-6-26 13:32:18 | 显示全部楼层
学习了,不错
发表于 2014-8-15 09:05:10 | 显示全部楼层
学习中,,方法很好,收下了
发表于 2014-9-8 13:40:02 | 显示全部楼层
这个是遍历所有文件吧,如果要指定类型的话是要写正则吗?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 12:56 , Processed in 0.071194 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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