易语言 取指定目录下指定类型的所有文件到列表框

我已经有一份源码,但是为什么无法获取到 指定目录下 子目录的 指定类型的文件?
例如 我想获取 c:\a\ 这个目录(包括子目录)下的所有.exe文件到列表框
c:\a\1\1.exe
c:\a\2\2.exe
c:\a\3\3.exe
c:\a\4\4.exe
c:\a\5\5.exe
我选 c:\a\ 这个目录 但获取不到 子目录的.exe文件
源码下载地址:http://pan.baidu.com/share/link?shareid=440893&uk=201753671

.版本 2
.支持库 iext
.支持库 internet
.支持库 spec

.子程序 子程序1

超级列表框1.全部删除 ()
目录数量 = FTP目录列表 (编辑框远程.内容, , 目录列表, 目录属性, 目录尺寸, 目录时间)
处理事件 ()
表项 = 超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (表项, 0, “上层目录”)
超级列表框1.置图片 (表项, 0, 8)

调试输出 (FTP取现行目录 ())
.计次循环首 (目录数量, n1)
.判断开始 (目录属性 [n1] = 16)
表项 = 超级列表框1.插入表项 (, , , , , )
文件大小 = 取大小 (目录尺寸 [n1])
文件属性 = 取文件类型 (目录列表 [n1])
超级列表框1.置标题 (表项, 0, 到文本 (目录列表 [n1]))
超级列表框1.置标题 (表项, 1, “文件夹”)
超级列表框1.置标题 (表项, 2, 文件大小)
超级列表框1.置标题 (表项, 3, 到文本 (目录时间 [n1]))
超级列表框1.置图片 (表项, 0, 1)
.默认

.判断结束

.计次循环尾 ()
.计次循环首 (目录数量, n1)
.判断开始 (目录属性 [n1] ≠ 16)
表项 = 超级列表框1.插入表项 (, , , , , )
文件大小 = 取大小 (目录尺寸 [n1])
文件属性 = 取文件类型 (目录列表 [n1])

超级列表框1.置标题 (表项, 2, 文件大小)
超级列表框1.置标题 (表项, 3, 到文本 (目录时间 [n1]))
超级列表框1.置标题 (表项, 0, 到文本 (目录列表 [n1]))

超级列表框1.置标题 (表项, 1, 文件属性)
超级列表框1.置图片 (表项, 0, 置图片 (文件属性))
.默认

.判断结束

.计次循环尾 ()
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-10
.版本 2
.子程序 搜索文件
.参数 目录名, 文本型
.参数 文件名, 文本型, 可空
.局部变量 结果, 文本型
.如果真 (目录名 = “”) ' 目录名为空的话提示填写目录名
信息框 (“填写目录”, 0, )
返回 () ' 返回 不填写的会继续往下执行
.如果真结束
.如果真 (文件名 = “”) ' 文件名就是 “xx.tct或 xx.exe”
文件名 = “*.*” ' "*.*"就是搜索除了文件夹以外的文件 EXE之类的 文件夹不包括在内
.如果真结束
.如果真 (取文本右边 (目录名, 1) ≠ “\”) ' 目录名是不是有\没有的话加上\以方便往下遍历
目录名 = 目录名 + “\”
.如果真结束
结果 = 寻找文件 (目录名 + 文件名, ) ' 结果=找文件 目录和要找的文件 *.*是全部文件 xx.xx是找指定文件
.判断循环首 (结果 ≠ “”) ' 结果不是空文件的话就循环 直到找到没有文件就停止循环
列表框1.加入项目 (目录名 + 结果, ) ' 在列表框里显示所找到的的文件
结果 = 寻找文件 (, ) ' 继续往下找
.判断循环尾 ()
结果 = 寻找文件 (目录名 + 文件名, #子目录)
.判断循环首 (结果 ≠ “”) ' 如果搜索的文件建不返回空 我们就继续找下去
.如果真 (结果 ≠ “.” 且 结果 ≠ “..”) ' 过滤隐藏文件
搜索文件 (目录名 + 结果, 文件名) ' 返回去调用 继续往下寻找
处理事件 ()
.如果真结束
结果 = 寻找文件 (, #子目录)
.判断循环尾 ()

这个是我几年前的源码....找了半天本回答被提问者采纳
第2个回答  2013-05-07
这个要用递归方法来寻找,具体的你去百度查吧,因为我也搞不明白递归的运用,看着有点迷糊
第3个回答  2013-05-07
寻找文件()追问

我用的是寻找文件
但是子目录的找不到

追答

首次要指定类型,可以用*.*代替,楼上已有人写了代码,可以自己参考一下。

第4个回答  2013-05-07
换个易语言
相似回答