复制文件的一个问题(已解决)
本帖最后由 xiaojinglf 于 2010-5-11 20:55 编辑我在使用dircopy复制文件当中,如果出现某一个文件复制失败(比如某个文件被杀软误报拦截后),整个dircopy复制过程就结束了。有什么办法可以忽略此问题而继续复制后续文件的参数呢?例如xpcopy的/c参数。
我查过帮助文件,么有找到方法。请大家赐教。 不怕麻烦用FileCopy循环完成。 不怕麻烦用FileCopy循环完成。
sky808 发表于 2010-5-7 05:57 http://www.autoitx.com/images/common/back.gif
怎么循环法啊。
我的意思是:对于被阻止的文件不再重试了。跳过继续。 思路:
1.将需要复制的文件文件名写入数组
2.通过循环语句执行FileCopy,若失败则返回值为0 ,记录此元素,继续执行FileCopy
3.如果文件完全复制,提示完毕;反之,提示未执行复制的元素 思路:
1.将需要复制的文件文件名写入数组
2.通过循环语句执行FileCopy,若失败则返回值为0 ,记录此元素 ...
lynfr8 发表于 2010-5-8 18:02 http://www.autoitx.com/images/common/back.gif
由于复制的文件太多了。而且包含子文件夹。且文件名无共同点。写入数组就困难了。 #include <File.au3>
_FileRecur(@WindowsDir)
MsgBox(64, '', 'done')
Func _FileRecur($_Path)
$folder = _FileListToArray($_Path, "*", 2)
If Not IsArray($folder) Then Return 0
For $o = 1 To $folder
MsgBox(0, '', $_Path & "\" & $folder[$o])
_FileRecur($_Path & "\" & $folder[$o])
Next
EndFunc获取某文件夹下的所有文件及子文件夹 根据楼上的提示,LZ可以自己写个 _DirCopy() 好。我试一下。谢谢 本帖最后由 xiaojinglf 于 2010-5-9 14:08 编辑
回复 6# lynfr8
我试了一下,filecopy的确可以跳过错误文件继续。dircopy遇到错误就会退出。
#include <File.au3>
_FileRecur(@ProgramFilesDir & "\soft")
MsgBox(64, '', 'done')
Func _FileRecur($_Path)
$folder = _FileListToArray($_Path, "*", 0)
If Not IsArray($folder) Then Return 0
For $o = 1 To $folder
_FileRecur($_Path & "\" & $folder[$o])
FileCopy ($_Path, "d:\soft",9)
Next
EndFunc
Exit
$folder[$o]可能是文件也可能是文件夹。所以不知道怎么恢复目录结构。复制到目标位置后都是文件,没有目录结构了。
我刚学这个。不知道该怎么写了。最后我还是调用了xcopy来完成的。
但是我还是希望高手能帮我写出这个例子。我也可以从中学习思维方式。
感谢以上二位的指导。 其实xcopy带参数简单啊呵呵 本帖最后由 C.L 于 2010-5-11 12:03 编辑
回复 9# xiaojinglf
要目录结构代码稍加处理就行了:
#include <File.au3>
$sfolder = @ProgramFilesDir & "\soft"
$pathlen = StringLen($sfolder)
_FileRecur($sfolder)
MsgBox(64, '', 'done')
Func _FileRecur($_Path)
$folder = _FileListToArray($_Path, "*", 0)
If Not IsArray($folder) Then Return 0
For $o = 1 To $folder
_FileRecur($_Path & "\" & $folder[$o])
FileCopy ($_Path, "d:\soft\"&StringTrimLeft($_Path,$pathlen)&"\",9)
Next
EndFunc
本帖最后由 xiaojinglf 于 2010-5-12 07:58 编辑
回复xiaojinglf
要目录结构代码稍加处理就行了:
C.L 发表于 2010-5-11 12:01 http://www.autoitx.com/images/common/back.gif
感谢解答。运行很成功,我会好好研究一下的。
多谢以上各位帮助。 11 楼完美。。 过来学习的
页:
[1]