|
文件_枚举_升级版,在易语言类下,无法使用 精易模块文件_枚举1与文件_枚举EX,因为似乎类下 无法使用子程序指针
.版本 2
.子程序 文件_枚举_升级版, 整数型, , 提供一个目录,获取目录下指定格式文件,成功返回获取到的数量,失败返回0
.参数 欲寻找的目录, 文本型, 可空, 提供一个目录,比如 “c:” 为空则搜索程序运行的目录
.参数 欲寻找的文件名, 文本型, 可空, 提供一个或多个扩展名,多个扩展名请用"|" 隔开,扩展名的点可加可不加,比如: ".jpg|exe|png|.e" 留空则获取全部搜索到的文件
.参数 文件数组, 文本型, 参考 可空 数组, 提供一个文本型的数组变量,接受结果
.参数 路径格式, 整数型, 可空, 0为获取完整路径,比如"c:\123.txt" 1为获取文件名,含扩展名,比如"123.txt" 2为文件名,不含扩展名 比如"123" 默认为0,获取完整路径
.参数 是否添加目录, 逻辑型, 可空, 为真时,搜索到的目录也加入到文件数组,默认为假,不加入目录
.参数 是否包含子目录, 逻辑型, 可空, 为真则子目录下文件也搜索,默认为假,不搜索子目录
.局部变量 局_搜索文件, 文本型
.局部变量 局_扩展名, 文本型, , "0"
.局部变量 局_搜到文件, 文本型
.局部变量 局_加入的文件, 文本型
.局部变量 i, 整数型
.如果真 (欲寻找的目录 = “”)
欲寻找的目录 = 取运行目录 ()
.如果真结束
.如果真 (取文本右边 (欲寻找的目录, 1) ≠ “\”)
欲寻找的目录 = 欲寻找的目录 + “\”
.如果真结束
局_搜索文件 = 寻找文件 (欲寻找的目录 + “*.*”, )
.判断循环首 (局_搜索文件 ≠ “”)
处理事件 ()
.判断开始 (欲寻找的文件名 = “*.*” 或 欲寻找的文件名 = “.*” 或 欲寻找的文件名 = “*”)
局_搜到文件 = 局_搜索文件
.判断 (是否为空 (欲寻找的文件名) = 假 且 欲寻找的文件名 ≠ “”)
局_扩展名 = 分割文本 (欲寻找的文件名, “|”, )
.计次循环首 (取数组成员数 (局_扩展名), i)
.如果真 (取文本左边 (局_扩展名 [i], 1) ≠ “.”)
局_扩展名 [i] = “.” + 局_扩展名 [i]
.如果真结束
.如果真 (到小写 (局_扩展名 [i]) = 到小写 (取文本右边 (局_搜索文件, 取文本长度 (局_扩展名 [i]))))
局_搜到文件 = 局_搜索文件
跳出循环 ()
.如果真结束
.计次循环尾 ()
.默认
局_搜到文件 = 局_搜索文件
.判断结束
.如果真 (局_搜到文件 ≠ “”)
.判断开始 (路径格式 = 0)
局_加入的文件 = 欲寻找的目录 + 局_搜到文件
.判断 (路径格式 = 1)
局_加入的文件 = 局_搜到文件
.判断 (路径格式 = 2)
局_加入的文件 = 取文本左边 (局_搜到文件, 倒找文本 (局_搜到文件, “.”, , 假) - 1)
.默认
局_加入的文件 = 欲寻找的目录 + 局_搜到文件 ' 其他情况都返回全路径
.判断结束
加入成员 (文件数组, 局_加入的文件)
.如果真结束
局_搜到文件 = “”
局_搜索文件 = 寻找文件 (, )
.判断循环尾 ()
.如果真 (是否添加目录 或 是否包含子目录)
局_搜索文件 = 寻找文件 (欲寻找的目录 + “*.*”, #子目录)
.判断循环首 (局_搜索文件 ≠ “”)
.如果真 (取文本左边 (局_搜索文件, 1) ≠ “.”)
.如果真 (是否添加目录)
加入成员 (文件数组, 欲寻找的目录 + 局_搜索文件)
.如果真结束
.如果真 (是否包含子目录)
文件_枚举_升级版 (欲寻找的目录 + 局_搜索文件, 欲寻找的文件名, 文件数组, 路径格式, 是否添加目录, 是否包含子目录) ' 递归
.如果真结束
.如果真结束
局_搜索文件 = 寻找文件 (, #子目录)
.判断循环尾 ()
.如果真结束
返回 (取数组成员数 (文件数组))
|
|