xiaozui 发表于 2010-5-23 19:48:46

怎么选择多个文件并进行复制并有进度条显示

本帖最后由 xiaozui 于 2010-5-25 18:04 编辑

本人菜鸟,想问下怎么把选择的多个文件进行复制并显示复制进度?例如,打开一个选择文件对话框,选择多个文件,然后把这些选择的文件复制到目的文件夹内,复制过程中显示进度条。

C.L 发表于 2010-5-23 20:46:14

给你做个例子,可用于整个目录复制,包含目录内的目录,复制时有复制进度的显示。
#include <File.au3>

$dir = FileSelectFolder('选择目录:','')

If @error = 1 Then
    MsgBox(48,"",'复制取消')
    Exit
Else
        $pathlen = StringLen($dir)
    AdlibRegister('_prog')
    ProgressOn('进度','复制中...')
    $conf=_copy ($dir)
        ProgressOff()
    If $conf = 1 then
      MsgBox(48,"",'复制完成!')
    Else
      MsgBox(48,"",'复制失败!')
    EndIf

    Exit
EndIf

Func _prog ()
    $newsize = DirGetSize(@ScriptDir & '\scripts')/1024^2
    $soursize = DirGetSize($dir)/1024^2
    $prog = $newsize / $soursize * 100
    ProgressSet($prog)
EndFunc

Func _copy($_Path)
    $folder = _FileListToArray($_Path, "*", 0)
    If Not IsArray($folder) Then Return 0
    For $o = 1 To $folder
      _copy($_Path & "\" & $folder[$o])
      FileCopy ($_Path, @ScriptDir & '\scripts\'&StringTrimLeft($_Path,$pathlen)&"\",9)
    Next
    Return 1
EndFunc

nxbigdaddy 发表于 2010-5-23 21:49:52

谢谢,学习了

C.L 发表于 2010-5-24 16:15:12

这个贴的13#刚上传有完整的代码:
http://www.autoitx.com/thread-15463-1-1.html

xiaozui 发表于 2010-5-25 18:04:54

感谢楼上各位朋友,问题已经解决,谢谢咯!

ndyzx 发表于 2012-5-8 14:06:39

回复 2# C.L

来学习的

macanchen 发表于 2012-10-31 16:32:36

{:face (411):}看看东西怎样

yjje220222 发表于 2012-11-13 13:20:30

很好很强大。
页: [1]
查看完整版本: 怎么选择多个文件并进行复制并有进度条显示