如何用易语言的进度条显示文件复制进度?
我做了学着用易语言写了个文件复制的小程序,要复制的文件包括文件夹及文件,总共有2G多,想用易语言自带的进度条(不要进度复制)显示文件复制的进度,如何实现??...
我做了学着用易语言写了个文件复制的小程序,要复制的文件包括文件夹及文件,总共有2G多,想用易语言自带的进度条(不要进度复制)显示文件复制的进度,如何实现??
展开
3个回答
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.内容 = 目录
.如果真结束你可以直接复制代码到易语言调试。
.参数 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.内容 = 目录
.如果真结束你可以直接复制代码到易语言调试。
2017-02-14 · 知道合伙人互联网行家
关注
展开全部
注意所需控件有一个通用对话框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.内容 = 目录
.如果真结束你可以直接复制代码到易语言调试。
.参数 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.内容 = 目录
.如果真结束你可以直接复制代码到易语言调试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我给你提供思路,自己去实现。
1、你用的是SSH框架,spring有一个MultipartFile技术,支持单文件和多文件上传
2、下载直接用BufferedInputStream+BufferedOutputStream去实现就可以了。
这两个都是很好学的。挺简单的
1、你用的是SSH框架,spring有一个MultipartFile技术,支持单文件和多文件上传
2、下载直接用BufferedInputStream+BufferedOutputStream去实现就可以了。
这两个都是很好学的。挺简单的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询