|
|

分享源码
| 界面截图: |
- |
| 是否带模块: |
纯源码 |
| 备注说明: |
- |
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 目录路径 | 文本型 | | | | 保存路径 | 文本型 | | |
目录路径 = 目录_浏览 (“请选择要提取目录树的文件夹”, , , , , ) 如果真 (目录路径 = “”) 返回 () 当前目录 = 目录路径 编辑框1. 加入文本 (“正在提取目录树...” + #换行符 )保存路径 = 取当前目录 () + “\目录树_” + 取现行时间戳 () + “.txt” 如果 (提取目录树 (目录路径, 保存路径 ))  编辑框1. 加入文本 (“目录树提取成功!” + #换行符 ) 编辑框1. 加入文本 (“保存路径:” + 保存路径 + #换行符 ) 编辑框1. 加入文本 (“目录树提取失败!” + #换行符 ) | 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 文件路径 | 文本型 | | | | 目标目录 | 文本型 | | |
通用对话框1.过滤器 = “文本文件(*.txt)|*.txt”通用对话框1.默认文件后缀 = “txt” 如果 (通用对话框1. 打开 ())  文件路径 = 通用对话框1.文件名 返回 () 目标目录 = 目录_浏览 (“请选择要恢复目录结构的目标文件夹”, , , , , ) 如果真 (目标目录 = “”) 返回 () 编辑框1. 加入文本 (“正在恢复目录结构...” + #换行符 ) 如果 (恢复目录结构 (文件路径, 目标目录 ))  编辑框1. 加入文本 (“目录结构恢复成功!” + #换行符 ) 编辑框1. 加入文本 (“目标路径:” + 目标目录 + #换行符 ) 编辑框1. 加入文本 (“目录结构恢复失败!” + #换行符 ) | 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 文件号 | 整数型 | | | | 深度 | 整数型 | | |
深度 = 0 文件号 = 打开文件 (保存路径, #重写, ) 如果真 (文件号 = 0 ) 返回 (假) 写文本行 (文件号, “目录树提取时间:” + 到文本 (取现行时间 ()) )写文本行 (文件号, “根目录:” + 目录路径 )写文本行 (文件号, “”)写文本行 (文件号, “目录结构如下:”)写文本行 (文件号, “”)遍历目录结构1 (目录路径, 文件号, 深度 )关闭文件 (文件号 )返回 (真)|
| 遍历目录结构1 | | | |
| 当前路径 | 文本型 | | | | 文件号 | 整数型 | | | | 深度 | 整数型 | | | |
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 文件名 | 文本型 | | | | 完整路径 | 文本型 | | | | 属性 | 整数型 | | | | 缩进 | 文本型 | | | | i | 整数型 | | | | 目录列表 | 文本型 | | 0 | | 文件列表 | 文本型 | | 0 | | j | 整数型 | | |
缩进 = “” 计次循环首 (深度, i ) 缩进 = 缩进 + “│ ” 计次循环尾 () 文件名 = 寻找文件 (当前路径 + “\*.*”, #子目录 ) 判断循环首 (文件名 ≠ “”) 如果真 (文件名 ≠ “.” 且 文件名 ≠ “..”)  完整路径 = 当前路径 + “\” + 文件名   属性 = 取文件属性 (完整路径 )  如果真 (位与 (属性, #子目录 ) ≠ 0 )    加入成员 (目录列表, 文件名 )   文件名 = 寻找文件 (, #子目录 ) 判断循环尾 () 如果真 (提取文件选择框.选中 )  文件名 = 寻找文件 (当前路径 + “\*.*”, 33 ) 判断循环首 (文件名 ≠ “”)  如果真 (文件名 ≠ “.” 且 文件名 ≠ “..”)   完整路径 = 当前路径 + “\” + 文件名    属性 = 取文件属性 (完整路径 )   如果真 (位与 (属性, #子目录 ) = 0 )      加入成员 (文件列表, 文件名 )     文件名 = 寻找文件 (, 33) 判断循环尾 () 计次循环首 (取数组成员数 (目录列表 ), j ) 完整路径 = 当前路径 + “\” + 目录列表 [j ] 写文本行 (文件号, 缩进 + “├─ ” + 目录列表 [j ] + “ [目录]”) 遍历目录结构1 (完整路径, 文件号, 深度 + 1 ) 计次循环尾 () 如果真 (提取文件选择框.选中 )  计次循环首 (取数组成员数 (文件列表 ), j )  完整路径 = 当前路径 + “\” + 文件列表 [j ]  写文本行 (文件号, 缩进 + “├─ ” + 文件列表 [j ] + “ [文件]”) 计次循环尾 () | 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 文件号 | 整数型 | | | | 行内容 | 文本型 | | | | 目录堆栈 | 文本型 | | 0 | | 当前深度 | 整数型 | | | | 新深度 | 整数型 | | | | 目录名 | 文本型 | | | | 完整路径 | 文本型 | | | | 根目录路径 | 文本型 | | |
文件号 = 打开文件 (文件路径, #读入, ) 如果真 (文件号 = 0 ) 返回 (假) 重定义数组 (目录堆栈, 假, 0 ) 加入成员 (目录堆栈, 目标目录 )移到文件首 (文件号 ) 判断循环首 (是否在文件尾 (文件号, ) = 假) 行内容 = 读入一行 (文件号 )  如果真 (寻找文本 (行内容, “目录树提取时间:”, , 假) ≠ -1 ) 到循环尾 () 如果真 (寻找文本 (行内容, “根目录:”, , 假) ≠ -1 )   根目录路径 = 取文本右边 (行内容, 取文本长度 (行内容 ) - 7 ) 到循环尾 () 如果真 (寻找文本 (行内容, “目录结构如下:”, , 假) ≠ -1 ) 到循环尾 () 如果真 (删首尾空 (行内容 ) = “”) 到循环尾 ()   如果真 (寻找文本 (行内容, “[目录]”, , 假) ≠ -1 )  新深度 = 计算目录深度 (行内容 ) 调试输出 (新深度 )  目录名 = 提取目录名称 (行内容 )   如果真 (新深度 < 取数组成员数 (目录堆栈 ) - 1 )    重定义数组 (目录堆栈, 真, 新深度 + 1 )      完整路径 = 目录堆栈 [新深度 + 1 ] + “\” + 目录名    如果真 (取反 (目录是否存在 (完整路径 )) )  创建目录 (完整路径 )      如果 (新深度 + 1 = 取数组成员数 (目录堆栈 ))     加入成员 (目录堆栈, 完整路径 )     目录堆栈 [新深度 + 2 ] = 完整路径      判断循环尾 ()关闭文件 (文件号 )返回 (真)| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 深度 | 整数型 | | | | 位置 | 整数型 | | | | 缩进单位 | 文本型 | | |
缩进单位 = “│ ”深度 = 文本_取出现次数 (行内容, 缩进单位, 假)返回 (深度 )| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 开始位置 | 整数型 | | | | 结束位置 | 整数型 | | | | 目录名 | 文本型 | | |
开始位置 = 寻找文本 (行内容, “├─ ”, , 假) 如果真 (开始位置 = -1 ) 返回 (“”) 开始位置 = 开始位置 + 4 结束位置 = 寻找文本 (行内容, “ [目录]”, 开始位置, 假) 如果真 (结束位置 = -1 ) 返回 (“”) 目录名 = 取文本中间 (行内容, 开始位置, 结束位置 - 开始位置 )目录名 = 删首尾空 (目录名 )返回 (目录名 )时间 = 取现行时间 ()返回 (到文本 (取年份 (时间 )) + 到文本 (取月份 (时间 )) + 到文本 (取日 (时间 )) + “_” + 到文本 (取小时 (时间 )) + 到文本 (取分钟 (时间 )) + 到文本 (取秒 (时间 )) )属性 = 取文件属性 (目录路径 ) 如果 (属性 = -1 ) 返回 (假) 返回 (位与 (属性, #子目录 ) ≠ 0 )
|
|