本帖最后由 令狐大虾 于 2025-5-21 12:39 编辑 #include <File.au3>
#include <Process.au3>
_DirCopyWithProgress("E:\SoftWareFiles", "C:\SoftWareFiles")
Func _DirCopyWithProgress($sSource, $sDest)
;验证源目录有效性
If Not FileExists($sSource) Then Return SetError(1, 0, "源路径无效")
;获取文件总数
Local $aFileList = _FileListToArrayRec($sSource, "*", 1, 1, 0, 2)
If @error Then Return SetError(2, 0, "文件列表获取失败")
;创建目标目录结构
If Not DirCreate($sDest) Then Return SetError(3, 0, "目标目录创建失败")
;初始化进度条
ProgressOn("复制相关调用文件到C盘", "", "0%", -1, 0, 18)
Local $iTotal = $aFileList[0]
Local $iCopied = 0
;遍历复制文件
For $i = 1 To $iTotal
Local $sTarget = StringReplace($aFileList[$i], $sSource, $sDest)
FileCopy($aFileList[$i], $sTarget, 1)
$iCopied += 1
ProgressSet(($iCopied/$iTotal)*100, Round(($iCopied/$iTotal)*100) & "%")
Next
ProgressOff()
Return $iCopied & " 个文件复制完成"
EndFunc
|