找回密码
 加入
搜索
查看: 3298|回复: 4

[效率算法] 复制某个目录下的所有 Jpg (包括子目录)[已解决]

[复制链接]
发表于 2013-3-13 21:41:00 | 显示全部楼层 |阅读模式
本帖最后由 魔导 于 2013-3-13 22:30 编辑

求助:
1.把 A目录(1.不知道有多少个文件夹。2.不知道文件夹有多少层;就是目录下有目录,目录下又有目录的那种) 下的 Jpg 后缀的文件复制 到 B目录(只有一层)
2.小弟认为:获取所有路径后获取所有文件名再判断是否复制(个人愚见)。想向各位 大大、前辈们求得好的思路和方法。还请各位大大、前辈们指点指点。
或者 指点指点  怎么获得 某个目录下(包括不知道有几个和有几层目录)所有的文件名。
多谢各位大大、前辈!!!
自己能解决的:
1.复制某个目录下的  长文件名含有 JPG 的所有文件
2.用 MD5 值命名 某个 或 某些文件 防止不同的文件重复文件名


问题  已解决  正解在  4 楼 。  感谢 A大 提供的例子~~
发表于 2013-3-13 21:56:33 | 显示全部楼层
如果仅仅只是怕因为文件名重复而“覆盖或放弃”导致文件遗漏,不如全部复制好了,每个文件名添加个“路径标记”则保证不会重复了。
搜索文件则很好办,随便拿个例子给你
 楼主| 发表于 2013-3-13 22:02:22 | 显示全部楼层
回复 2# afan


    麻烦   A大了 怎么  得到所有的文件名啊
发表于 2013-3-13 22:12:15 | 显示全部楼层
回复 3# 魔导
#Include <Array.au3>

Local $sPath = @ScriptDir & '\test'

Local $sFiles
_FileFindAll($sPath, $sFiles, '.jpg')

Local $aLine = StringRegExp($sFiles, '\V+', 3)
_ArrayDisplay($aLine, '')

Func _FileFindAll($sDir, ByRef $sOut, $sExt)
        Local $hSearch = FileFindFirstFile($sDir & '\*.*')
        If $hSearch = -1 Then Return
        While 1
                Local $sFile = FileFindNextFile($hSearch)
                If @error Then ExitLoop
                If @extended Then
                        _FileFindAll($sDir & '\' & $sFile, $sOut, $sExt)
                        ContinueLoop
                EndIf
                If StringRight($sFile, 4) = $sExt Then $sOut &= $sDir & '\' & $sFile & @CRLF
        WEnd
        FileClose($hSearch)
EndFunc   ;==>_FileFindAll
 楼主| 发表于 2013-3-13 22:28:08 | 显示全部楼层
回复 4# afan


   多谢  A 大   问题已解决。  多谢多谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-12 20:42 , Processed in 0.073979 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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