vb实现目录下所有文件名/目录名称的获取

前几日,有个哥们说有很多电影,问我要不要?我就让他一个一个的写过来,让哥们累个不轻。所以就想简单写个程序,获取一下文件夹下面的所有文件名称,这样就可以节省很多时间了。

软件呢,我已经上传到网站了:http://download.csdn.net/source/1802599

vb版本目录获取器 1.0(龙卷风出品)
说明:
1.选好目录后,可以直接得到目录下的文件夹和文件名称,以及统计数目。
2."树形结构"按键将会把各文件夹和文件罗列下来。
3."树形展开"将把目录下的子目录也一并展开。大家测试的时候需要注意,不要用太深的目录来测。

下面开始动手的步骤:

vb中有个函数Dir(),这个就是今天的主角了。Dir()第一次调用的时候,必须指定路径。然后其会返回一个string,这就是一个文件夹,或者一个文件的名称了。具体用法,大家google一下吧。我就不多说了。

然后就是区分返回值是文件夹,还是文件。这里用到的就是vbDirectory(=16)这个属性了。

OK. 剩下的就简单了,我把我软件中的这部分发出来share一下,大家不要说水平太差哟:

首先我是将文件显示做了区分:文件夹名称显示folderlist(),文件名称显示filelist():

Private Function folderlist(pathname As String,treeflag As Integer) 'treeflag:0列表 1树形 2树形展开
'文件夹数和名称
Dim sf As String
sf = Dir(pathname,vbDirectory) '获取第一个目录名
foldernum = 0
Do While sf <> ""
' 跳过当前的目录及上层目录
If sf <> "." And sf <> ".." Then
If (GetAttr(pathname + sf) And vbDirectory) = vbDirectory Then
If treeflag = 0 Then
Text2 = Text2 & sf & vbCrLf ' 如果它是一个目录,将其名称添加到列表
ElseIf treeflag = 1 Then
Text2 = Text2 & Treestr & sf & vbCrLf
ElseIf treeflag = 2 Then '树形展开的时候,需要了解子目录,所以还需进行递归调用
Text2 = Text2 & Treestr & sf & vbCrLf
folderlist pathname + sf,treeflag
filelist pathname + sf,treeflag
End If
foldernum = foldernum + 1 '统计文件夹数目
End If
End If
sf = Dir() ' 查找下一个目录
Loop

If treeflag = 0 Then
If foldernum <> 0 Then
Text2 = Text2 & vbCrLf & "======共有" & foldernum & "个文件夹======" & vbCrLf & vbCrLf
Else
Text2 = Text2 & "======无子目录======" & vbCrLf & vbCrLf
End If
ElseIf foldernum <> 0 Then
Text2 = Text2 & Nullstr & vbCrLf & Nullstr & vbCrLf
End If

End Function

Private Function filelist(pathname As String,treeflag As Integer) '0列表 1树形 2树形展开
'文件数和名称
Dim a As String

a = Dir(pathname & "/*.*")
filenum = 0

Do While a <> ""

If treeflag = 0 Then
Text2 = Text2 & a & vbCrLf
Else
Text2 = Text2 & Treestr & a & vbCrLf
End If
filenum = filenum + 1 '统计文件数目
a = Dir
Loop

If treeflag = 0 Then
If filenum <> 0 Then
Text2 = Text2 & "======共有" & filenum & "个文件======"
Else
Text2 = Text2 & "======无文件信息======"
End If
End If

End Function


OK,现在大家都已经了解处理机制了。应该不会再管我要什么源码了吧!呵呵

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...