shqf 发表于 2010-1-10 20:12:40

一个简单的、易于理解的带进度条显示的文件夹复制代码

本帖最后由 shqf 于 2010-1-10 20:14 编辑

$sDir = "C:\Program Files\Common Files"
$tDir = "E:\Test"
$sSize = DirGetSize($sDir)
ProgressOn("文件夹复制","正在复制" & StringLeft($sDir,14) & "...下所有文件","己复制0%")
Run(@ComSpec & " /c " & 'xcopy /s /e /y "'& $sDir &'" "'& $tDir & '\"',"",@SW_HIDE)                  

While 1
    $tSize=DirGetSize($tDir)
    $Percent=Ceiling($tSize/$sSize*100)
    If $Percent<100 then
      ProgressSet($Percent,"已复制" & $Percent & "%")
    Else
      Sleep(1000)
      ProgressSet("100","已复制100%")       
      Sleep(3000)
      ProgressOff()
      ExitLoop
    EndIf
        Sleep(200)
WEnd拷贝文件用DOS中的Xcopy命令,原想用AU3当中的DirCopy函数,不知为啥总不行。请问有人知道吗?望赐教。

jycel 发表于 2010-1-10 20:36:49

本帖最后由 jycel 于 2010-1-10 20:43 编辑

DirCopy ( "源目录", "目标目录" [, 标志] ) 无法拷贝?还是那儿出错了?
论坛搜索下相关一大把

追梦虎 发表于 2010-1-10 21:02:41

哈哈,你这思路跟我的简直是一模一样,我的己经解决了。在这跟你说下,DIRCOPY那是因为要等它执行完,也就是要完全复制完,它才会跳入下一行的代码,所以就不能看到进度条的变化,只能等到它复制完才会显示100%。
页: [1]
查看完整版本: 一个简单的、易于理解的带进度条显示的文件夹复制代码