请教如何顺序读取一个文件目录下的某一类型文件?

gxlcskcs 2003-04-03 08:02:51
想用一个listbox控件读取工作目录下的*.abc文件,我只想到下面的代码,但不能达到目的
Path$ = App.Path + "\*.abc"
firsthtml = Dir(Path$)
If firsthtml = "" Then
MsgBox "No User files could be found.", 16, "Files Not Found"
Exit Sub
End If
list1.Clear
Do While firsthtml <> "": DoEvents '程序在这里停掉了,总是读取同一个
list1.AddItem (firsthtml) '文件,不知道那位大哥能告诉我顺序
firsthtml = Dir(Path$) '读取下去的方法?
Loop
End Sub
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxlcskcs 2003-04-03
  • 打赏
  • 举报
回复
还有个问题,在filelistbox.pattern=“*.abc"设置中,它好像是作为*.abc*来解释的,就是*.abcdfe也符合。请问怎样避免这个问题?
gxlcskcs 2003-04-03
  • 打赏
  • 举报
回复
doevents 是随手写上去的,怕文件太多的时候读会占用太多时间

用filelistbox当然可以,我就是想看看我的思路有没有方法可以实现
楼上的谢谢了
蒋宏伟 2003-04-03
  • 打赏
  • 举报
回复
Path$ = App.Path + "\*.abc"
firsthtml = Dir(Path$)
If firsthtml = "" Then
MsgBox "No User files could be found.", 16, "Files Not Found"
Exit Sub
End If
list1.Clear
Do While firsthtml <> "" '程序在这里停掉了,总是读取同一个
list1.AddItem (firsthtml) '文件,不知道那位大哥能告诉我顺序
firsthtml = Dir() '读取下去的方法?
Loop
End Sub

那个doeventsw你干什么,还要同时做别的操作吗
蒋宏伟 2003-04-03
  • 打赏
  • 举报
回复
上面你何不用filelistbox 代替呢
蒋宏伟 2003-04-03
  • 打赏
  • 举报
回复
在第一次调用 Dir 函数时,必须指定 pathname,否则会产生错误。如果也指定了文件属性,那么就必须包括 pathname。

Dir 会返回匹配 pathname 的第一个文件名。若想得到其它匹配 pathname 的文件名,再一次调用 Dir,且不要使用参数。如果已没有合乎条件的文件,则 Dir 会返回一个零长度字符串 ("")。一旦返回值为零长度字符串,并要再次调用 Dir 时,就必须指定 pathname,否则会产生错误。不必访问到所有匹配当前 pathname 的文件名,就可以改变到一个新的 pathname 上。但是,不能以递归方式来调用 Dir 函数。以 vbDirectory 属性来调用 Dir 不能连续地返回子目录。

提示 由于文件名并不会以特别的次序来返回,所以可以将文件名存储在一个数组中,然后再对这个数组排序。

详情请看msdn Dir函数参考

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧