前几日,有个哥们说有很多电影,问我要不要?我就让他一个一个的写过来,让哥们累个不轻。所以就想简单写个程序,获取一下文件夹下面的所有文件名称,这样就可以节省很多时间了。
软件呢,我已经上传到网站了: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,现在大家都已经了解处理机制了。应该不会再管我要什么源码了吧!呵呵
完