Newbie 发表于 2013-7-19 14:31:00

[已解决]如何将指定文件夹下的所有文件名写入到一个文本文件中?

本帖最后由 Newbie 于 2013-7-20 21:18 编辑

类似这样的:
E:\电影\外国\乱世佳人.rmvb
E:\电影\外国\佐罗的面具.rmvb
E:\电影\外国\剧情\你丫闭嘴(东北话版).rmvb
E:\电影\外国\剧情\勇敢的心.rmvb
E:\电影\外国\剧情\卡萨布兰卡.rmvb
E:\电影\外国\剧情\在路上.mkv
E:\电影\外国\剧情\廊桥遗梦.rmvb

包含子文件夹中的文件。

yifang3878 发表于 2013-7-19 14:36:42

回复 1# Newbie

参照
;=============================
;例子2:递归查找当前目录及其子目录下的所有文件
;=============================
FindAllFile(@ScriptDir)
Func FindAllFile($sDir)
    Local $hSearch = FileFindFirstFile($sDir & "\*.*")
    ; 检查搜索是否成功
    If $hSearch = -1 Then Return
    While 1
      Local $sFile = FileFindNextFile($hSearch)
      If @error Then ExitLoop
      
      If @extended Then
            FindAllFile($sDir & "\" & $sFile)
            ContinueLoop
      EndIf
      FileWriteLine("找到的文件.txt",$sDir & "\" & $sFile)
    WEnd
    ; 关闭搜索句柄
    FileClose($hSearch)
EndFunc

Newbie 发表于 2013-7-19 15:06:59

感谢!{:face (84):}

ndyzx 发表于 2013-7-19 15:28:37

回复 2# yifang3878
来学习,谢谢。

jsgh1983 发表于 2013-7-19 20:48:44

感谢2楼的例子!正好用到!再次谢谢!

xlj310 发表于 2013-7-20 14:17:43

本帖最后由 xlj310 于 2013-7-20 14:19 编辑

使用bat命令,很久以前就会的,dir>name.txt 即可!

不过这个命令会把文件夹也会列出来,当然,对于你这个测试例子来说还是没有问题的,貌似你要获取的文件名应该是会排在一起的,而且批处理命令对文件操作也是很容易的!

Ycxw2008 发表于 2013-7-20 17:23:50

本帖最后由 Ycxw2008 于 2013-7-20 17:34 编辑


$DirPath = @ScriptDir ; 目录
$SaveFile = @ScriptDir & "\file.txt" ; 保存的文件

;~ 下面几个参数的用处,具体的查看命令行帮助
;~ /A:-D 不保存目录名
;~ /B 使用空格式(没有标题信息或摘要)
;~ /S 显示指定目录和所有子目录中的文件

RunWait(@ComSpec & " /c DIR /B /S /A:-D " & $DirPath & " > " & $SaveFile, "", @SW_HIDE)
;~ RunWait("Notepad " & $SaveFile)
;~ FileDelete($SaveFile)
页: [1]
查看完整版本: [已解决]如何将指定文件夹下的所有文件名写入到一个文本文件中?