压缩文件操作类模块,支持进度查看的解压缩

易语言 2020-07-28 16:47:23

压缩文件操作类模块,支持进度查看的解压缩

.子程序 到标准路径, 文本型, , 本方法为内部方法,将路径文本中的“/”替换为“\”
.参数 内部专用路径, 文本型
.局部变量 部_临时文本, 文本型

' // [标准路径]的定义:
' // 1、根目录为空,这点与资源管理器相同,前面加上盘符如“c:\”即可组成完整的路径;
' // 2、所有目录尾部均无任何特殊标志,如“\”符号;
.如果真 (内部专用路径 = “” 或 内部专用路径 = “\”)
返回 (“”)
.如果真结束
部_临时文本 = 子文本替换 (内部专用路径, “/”, “\”, , , 假)
部_临时文本 = 子文本替换 (部_临时文本, “\\”, “\”, , , 假)
.如果真 (取文本右边 (部_临时文本, 1) = “\”)
部_临时文本 = 取文本左边 (部_临时文本, 取文本长度 (部_临时文本) - 1)

.子程序 EC_枚举文件, 整数型
.参数 参数_文件数组, 枚举_文件, 数组, 本参数将被赋值为枚举得到的结果
.参数 参数_目录地址, 文本型, , 需要枚举的目录地址,如果路径以"\"结尾,将被自动修正
.参数 参数_枚举方式, 整数型, 可空, 1、枚举文件 2、枚举目录 3、枚举文件+枚举目录(默认值)
.参数 参数_含子目录, 逻辑型, 可空, 是否同时枚举[参数_目录地址]下的子目录,默认值为真
.参数 参数_文件类型, 文本型, 可空, 可以使用多字符 (*) 和单字符 (?) 通配符来指定多重文件,本参数等同于对话框的过滤器属性,用来过滤需要枚举的文件,默认值为“*.*”
.参数 参数_文件属性, 整数型, 可空, 本参数值仅当[参数_枚举方式]为1或3时有效,参数值可以为以下常量值或其和: 1、#只读文件; 2、#隐藏文件; 4、#系统文件; 32、#存档文件 。通过将这些常量值加起来可以一次设置多个文件属性。如果省略本参数,默认为搜寻除子目录外的所有文件
.参数 参数_是否短路径, 逻辑型, 可空, 是否需要将枚举到的文件转换为短路径显示,默认值为假
.参数 参数_缓冲区长度, 整数型, 可空, 转换为短路径时,需要使用的缓冲区长度,可自行设置,但尽量保证足够的长度,否则将导致出错,默认值为512
.局部变量 部_枚举队列, 文本型, , "0"
.局部变量 部_临时路径, 文本型
.局部变量 部_临时文本, 文本型
.局部变量 部_循环计次, 整数型
.局部变量 部_临时位置, 整数型
.局部变量 部_队列成员, 枚举_文件

参数_枚举方式 = 选择 (是否为空 (参数_枚举方式), #枚举文件_全部, 参数_枚举方式)
参数_含子目录 = 选择 (是否为空 (参数_含子目录), 真, 参数_含子目录)
参数_文件类型 = 选择 (是否为空 (参数_文件类型), “*.*”, 参数_文件类型)
参数_文件属性 = 选择 (是否为空 (参数_文件属性), #只读文件 + #隐藏文件 + #系统文件 + #存档文件, 参数_文件属性)
参数_是否短路径 = 选择 (是否为空 (参数_是否短路径), 假, 参数_是否短路径)
参数_缓冲区长度 = 选择 (是否为空 (参数_缓冲区长度), 512, 参数_缓冲区长度)
.如果真 (取文本右边 (参数_目录地址, 1) = “\”)
参数_目录地址 = 取文本左边 (参数_目录地址, 取文本长度 (参数_目录地址) - 1)
.如果真结束
清除数组 (参数_文件数组)
加入成员 (部_枚举队列, 参数_目录地址) ' 把初始目录加到队列