标题:[求助]如何遍历已知一个路径下的所有文件?
取消只看楼主
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
 问题点数:0 回复次数:6 
[求助]如何遍历已知一个路径下的所有文件?
请问,如何遍历已知一个路径下的所有文件(这个表述可能不太准确)?

不过,我想达到的是所有文件,我现在已经知道用DIR函数可以实现,但唯一的缺憾就是如果该路径下还有文件夹,就没办法遍历文件夹里面的文件了。

现在,我该怎么做才能遍历到已知路径下的所有文件,包括该路径包含的文件夹里的所有文件!?
搜索更多相关主题的帖子: 遍历 路径 文件 DIR 
2007-08-13 20:19
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
得分:0 

有点不明白?用递归?

主要是现在根本就不知道该路径下有多少个文件夹!而且MSDN中不是说:不能用递归方式来调用DIR函数?


偶学编程,也许本身就是一个错。。。
2007-08-13 21:31
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
得分:0 
谢谢Joforn,现在有点思路了,可是有一个问题

就是如果用dir返回一个名称,怎么知道它是一个文件夹,还是一个无类型文件?

[此贴子已经被作者于2007-8-13 21:35:47编辑过]


偶学编程,也许本身就是一个错。。。
2007-08-13 21:35
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
得分:0 
5楼的代码不行哦,只能列出本路径下的文件,连文件夹都遍历不出来,更别说深一层目录下的文件啦~~~~~~

偶学编程,也许本身就是一个错。。。
2007-08-13 21:38
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
得分:0 
Joforn的Dir("*.*", vbHidden Or vbSystem Or vbDirectory)好像不能达到目的哦

我觉得用递归写应该可以,思路是这样的,如果返回的是文件夹名则递归调用本函数,遍历这个文件夹,如返回的文件名,则用DIR继续。

现在的问题是,返回的到底是文件夹名还是无类型文件名不能区分开。如果用后缀名来判断的话,一般情况下是不会出问题。我是担心万一碰到了没有后缀的文件,不知道该怎么办!

偶学编程,也许本身就是一个错。。。
2007-08-13 23:37
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
得分:0 
好家伙,厉害啊~~~~~~

偶学编程,也许本身就是一个错。。。
2007-08-14 11:54
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
得分:0 
看来,我想的太天真了,本以为这样可以:
Private Sub findAllFile(path As String)
Dim strPath As String
strPath = Dir(path, vbDirectory + vbHidden + vbNormal + vbReadOnly + vbSystem)
Do While Len(strPath)
If Not (strPath Like "*.*") Then
findAllFile path & "\" & strPath
Else
Form1.Print strPath
End If
strPath = Dir()
Loop
End Sub

没想到出错了,dir是不是不能这样用?

偶学编程,也许本身就是一个错。。。
2007-08-14 12:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-162433-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.917794 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved