为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

仿WINDOWS进度复制文件夹源码例程

三叶资源网 2019-05-30 12:05:37 易语言例程 2042 ℃ 2 评论

仿WINDOWS进度复制文件夹源码例程

@Lollipop

.版本 2
.支持库 shell
.支持库 EThread

.程序集 窗口程序集1
.程序集变量 目录数组, 文本型, , "0"
.程序集变量 文件数组, 文本型, , "0"
.程序集变量 线程句柄, 整数型

.子程序 _按钮1_被单击
.局部变量 path, 文本型

path = 浏览文件夹 (“请选择原目录:”, )
.如果真 (path ≠ 取空白文本 (0))
    编辑框1.内容 = path
.如果真结束


.子程序 _按钮2_被单击
.局部变量 path, 文本型

path = 浏览文件夹 (“请选择新目录:”, )
.如果真 (path ≠ 取空白文本 (0))
    编辑框2.内容 = path
.如果真结束


.子程序 _按钮3_被单击

清除数组 (目录数组)
清除数组 (文件数组)
按钮3.禁止 = 真
启动线程 (&线程_进度显示, , 线程句柄)

.子程序 线程_进度显示
.局部变量 计次, 整数型
.局部变量 dir, 文本型
.局部变量 计次一, 整数型
.局部变量 path, 文本型
.局部变量 swit, 逻辑型
.局部变量 num, 整数型

标签3.标题 = “正在统计所有文件/文件夹...”
子程序_核心搜索 (编辑框1.内容)
标签3.标题 = “正在创建所需文件夹...”
进度条1.位置 = 0
进度条1.最大位置 = 取数组成员数 (目录数组)
.计次循环首 (取数组成员数 (目录数组), 计次)
    dir = 子文本替换 (目录数组 [计次], 编辑框1.内容, 编辑框2.内容, , 1, 真)
    创建目录 (dir)
    进度条1.位置 = 进度条1.位置 + 1
.计次循环尾 ()
标签3.标题 = “文件复制中...”
进度条1.位置 = 0
进度条1.最大位置 = 取数组成员数 (文件数组)
.计次循环首 (取数组成员数 (文件数组), 计次一)
    path = 子文本替换 (文件数组 [计次一], 编辑框1.内容, 编辑框2.内容, , 1, 真)
    swit = CopyFileExA (文件数组 [计次一], path, &CopyProgressRoutine, 0, 0, #COPY_FILE_RESTARTABLE)
    .如果真 (swit = 假)
        num = num + 1
    .如果真结束
    进度条1.位置 = 进度条1.位置 + 1
.计次循环尾 ()
标签3.标题 = “报告老大已经全部搞定...    失败:” + 到文本 (num) + “个”
按钮3.禁止 = 假

.子程序 CopyProgressRoutine, 整数型
.参数 TotalFileSize, 双精度小数型
.参数 TotalBytesTransferred, 双精度小数型
.参数 StreamSize, 双精度小数型
.参数 StreamBytesTransferred, 双精度小数型
.参数 dwStreamNumber
.参数 dwCallbackReason
.参数 hSourceFile
.参数 hDestinationFile
.参数 lpData

进度条2.位置 = 取整 (TotalBytesTransferred × 10000 ÷ (TotalFileSize × 10000) × 100)
返回 (#PROGRESS_CONTINUE)

.子程序 子程序_核心搜索
.参数 目标目录, 文本型
.局部变量 文件名, 文本型

文件名 = 寻找文件 (目标目录 + “*.*”, #子目录)
.判断循环首 (文件名 ≠ “”)
    .如果真 (文件名 ≠ “.” 且 文件名 ≠ “..”)
        加入成员 (目录数组, 目标目录 + “” + 文件名)
        子程序_核心搜索 (目标目录 + “” + 文件名)
    .如果真结束
    文件名 = 寻找文件 (, #子目录)
.判断循环尾 ()
文件名 = 寻找文件 (目标目录 + “*.*”, )
.判断循环首 (文件名 ≠ “”)
    加入成员 (文件数组, 目标目录 + “” + 文件名)
    文件名 = 寻找文件 (, )
.判断循环尾 ()

.子程序 __启动窗口_可否被关闭, 逻辑型

.如果真 (按钮3.禁止)
    .如果真 (信息框 (“正在复制文件中,是否强制关闭?”, 4 + 48, ) = 6)
        返回 (假)
    .如果真结束
    强制结束线程 (线程句柄)
.如果真结束


.子程序 __启动窗口_创建完毕
文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有2位网友发表了看法:

  • 静编

    静编  评论于 [2020-03-17 12:51:04]  回复

    易语言复制目录带进度条源码

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
取色器源码复制组件易语言教程smartQQWeb浏览器111114G移动通信技术权威指南百度AISign计算s5代理集群WORD文件加图片socks5百度登陆图片格式转换器express多彩浏览框go语言python对比工控之交通灯VTCPVstart源码
最新评论