如何用易语言的进度条显示文件复制进度?

我做了学着用易语言写了个文件复制的小程序,要复制的文件包括文件夹及文件,总共有2G多,想用易语言自带的进度条(不要进度复制)显示文件复制的进度,如何实现??... 我做了学着用易语言写了个文件复制的小程序,要复制的文件包括文件夹及文件,总共有2G多,想用易语言自带的进度条(不要进度复制)显示文件复制的进度,如何实现?? 展开
 我来答
匿名用户
2013-05-22
展开全部
注意所需控件有一个通用对话框dll命令dll命令:---------------.版本 2.DLL命令 CopyFileExA, 整数型, , "CopyFileExA"
.参数 lpExistingFileName, 文本型
.参数 lpNewFileName, 文本型
.参数 lpProgressRoutine, 子程序指针
.参数 lpData, , 传址
.参数 pbCancel
.参数 dwCopyFlags.DLL命令 PathFindFileNameA, 文本型, "Shlwapi.dll", "PathFindFileNameA"
.参数 pPath, 文本型--------------------------------代码:--------------------------------
代码:----------------------.版本 2
.支持库 shell.程序集 窗口程序集1.子程序 _按钮1_被单击
.局部变量 文件名, 文本型文件名 = 编辑框1.内容
文件名 = PathFindFileNameA (文件名)
' 详细信息请查阅MSDN
' winnt only
.如果真 (编辑框1.内容 ≠ “” 且 编辑框2.内容 ≠ “”)
CopyFileExA (编辑框1.内容, 选择 (取文本右边 (编辑框2.内容, 1) = “\”, 编辑框2.内容, 编辑框2.内容 + “\”) + 文件名, &CopyProgressRoutine, 0, 0, 1)
.如果真结束
.子程序 CopyProgressRoutine, 整数型
.参数 TotalFileSize, 长整数型
.参数 TotalBytesTransferred, 长整数型
.参数 StreamSize, 长整数型
.参数 StreamBytesTransferred, 长整数型
.参数 dwStreamNumber, 整数型
.参数 dwCallbackReason, 整数型
.参数 hSourceFile, 整数型
.参数 hDestinationFile, 整数型
.参数 lpData, 整数型进度条1.位置 = TotalBytesTransferred ÷ TotalFileSize × 100 ' 若想百分比更精确,请转换成小数再除
标签1.标题 = 到文本 (进度条1.位置) + “%”
处理事件 ()
返回 (0) ' 返回0则继续复制
.子程序 _按钮2_被单击.如果真 (通用对话框1.打开 ())
编辑框1.内容 = 通用对话框1.文件名
.如果真结束
.子程序 _按钮3_被单击
.局部变量 目录, 文本型目录 = 浏览文件夹 (“选择文件夹”, )
.如果真 (目录 ≠ “”)
编辑框2.内容 = 目录
.如果真结束你可以直接复制代码到易语言调试。
DoramiHe
2017-02-14 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59543
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
注意所需控件有一个通用对话框dll命令dll命令:---------------.版本 2.DLL命令 CopyFileExA, 整数型, , "CopyFileExA"
.参数 lpExistingFileName, 文本型
.参数 lpNewFileName, 文本型
.参数 lpProgressRoutine, 子程序指针
.参数 lpData, , 传址
.参数 pbCancel
.参数 dwCopyFlags.DLL命令 PathFindFileNameA, 文本型, "Shlwapi.dll", "PathFindFileNameA"
.参数 pPath, 文本型--------------------------------代码:--------------------------------
代码:----------------------.版本 2
.支持库 shell.程序集 窗口程序集1.子程序 _按钮1_被单击
.局部变量 文件名, 文本型文件名 = 编辑框1.内容
文件名 = PathFindFileNameA (文件名)
' 详细信息请查阅MSDN
' winnt only
.如果真 (编辑框1.内容 ≠ “” 且 编辑框2.内容 ≠ “”)
CopyFileExA (编辑框1.内容, 选择 (取文本右边 (编辑框2.内容, 1) = “\”, 编辑框2.内容, 编辑框2.内容 + “\”) + 文件名, &CopyProgressRoutine, 0, 0, 1)
.如果真结束
.子程序 CopyProgressRoutine, 整数型
.参数 TotalFileSize, 长整数型
.参数 TotalBytesTransferred, 长整数型
.参数 StreamSize, 长整数型
.参数 StreamBytesTransferred, 长整数型
.参数 dwStreamNumber, 整数型
.参数 dwCallbackReason, 整数型
.参数 hSourceFile, 整数型
.参数 hDestinationFile, 整数型
.参数 lpData, 整数型进度条1.位置 = TotalBytesTransferred ÷ TotalFileSize × 100 ' 若想百分比更精确,请转换成小数再除
标签1.标题 = 到文本 (进度条1.位置) + “%”
处理事件 ()
返回 (0) ' 返回0则继续复制
.子程序 _按钮2_被单击.如果真 (通用对话框1.打开 ())
编辑框1.内容 = 通用对话框1.文件名
.如果真结束
.子程序 _按钮3_被单击
.局部变量 目录, 文本型目录 = 浏览文件夹 (“选择文件夹”, )
.如果真 (目录 ≠ “”)
编辑框2.内容 = 目录
.如果真结束你可以直接复制代码到易语言调试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
year医海无边
2017-02-05 · TA获得超过1.5万个赞
知道小有建树答主
回答量:9169
采纳率:66%
帮助的人:1131万
展开全部
我给你提供思路,自己去实现。
1、你用的是SSH框架,spring有一个MultipartFile技术,支持单文件和多文件上传
2、下载直接用BufferedInputStream+BufferedOutputStream去实现就可以了。
这两个都是很好学的。挺简单的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式