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

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

  [复制链接]
发表于 2010-5-23 19:48:46 | 显示全部楼层 |阅读模式
本帖最后由 xiaozui 于 2010-5-25 18:04 编辑

本人菜鸟,想问下怎么把选择的多个文件进行复制并显示复制进度?例如,打开一个选择文件对话框,选择多个文件,然后把这些选择的文件复制到目的文件夹内,复制过程中显示进度条。
发表于 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[0]
        _copy($_Path & "" & $folder[$o])
        FileCopy ($_Path, @ScriptDir & '\scripts\'&StringTrimLeft($_Path,$pathlen)&"",9)
    Next
    Return 1
EndFunc

评分

参与人数 1金钱 +10 收起 理由
xiaozui + 10 谢谢帮忙!

查看全部评分

发表于 2010-5-23 21:49:52 | 显示全部楼层
谢谢,学习了
发表于 2010-5-24 16:15:12 | 显示全部楼层
这个贴的13#刚上传有完整的代码:
http://www.autoitx.com/thread-15463-1-1.html

评分

参与人数 1金钱 +20 收起 理由
xiaozui + 20 非常感谢!

查看全部评分

 楼主| 发表于 2010-5-25 18:04:54 | 显示全部楼层
感谢楼上各位朋友,问题已经解决,谢谢咯!
发表于 2012-5-8 14:06:39 | 显示全部楼层
回复 2# C.L

来学习的
发表于 2012-10-31 16:32:36 | 显示全部楼层
看看东西怎样
发表于 2012-11-13 13:20:30 | 显示全部楼层
很好很强大。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-2 12:15 , Processed in 0.086675 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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