主题:求助:怎样获取一个目录下特定后缀的所有文件?
zyl2008compete
[专家分:30] 发布于 2008-03-26 13:26:00
打算用VB2005实现,
先用FolderBrowser获取文件夹名称,再怎么提取该目录下特定后缀的所有文件名?
比如C:\test下所有*.txt文件名?(可输出至ListBox)
回复列表 (共3个回复)
沙发
singlion [专家分:690] 发布于 2008-03-26 21:57:00
我不会VB2005,会6.0。
以前我弄了一个成批分割文本文件的小程序,包含一个搜索文件夹下所有文本文件的功能,稍微改改就中。恰好是以“*.txt”作为示例。
首先保证路径最后有一个“\”
If Right(FolderPath, 1) <> "\" Then FolderPath = FolderPath & "\"
第一部分代码是搜索时包含子目录的函数,这个函数会把指定目录中的文本文件路径添加到一个name为list1的ListBox中。
Function GetFolder(FolderName)
Dim FileManager As New FileSystemObject
Dim Folder, Coll, Fii
'On Error Resume Next
Set Folder = FileManager.GetFolder(FolderName)
Set Coll = Folder.SubFolders
DoEvents
RenFile (FolderName)
For Each Fii In Coll
RenFile (Fii)
GetFolder (Fii)
DoEvents
Next
End Function
Function RenFile(Fii)
Dim FileManager As New FileSystemObject
Dim File, fileName, KName, FColl, Fjj
If Right(Fii, 1) <> "\" Then Fii = Fii & "\"
'On Error Resume Next
DoEvents
Set File = FileManager.GetFolder(Fii)
Set FColl = File.Files
For Each Fjj In FColl
fileName = FileManager.GetFileName(Fjj)
KName = FileManager.GetExtensionName(Fjj)
If KName <> "" Then KName = "." & KName
If KName = ".txt" Then
List1.AddItem Fii & fileName
FindFileNum = FindFileNum + 1
End If
DoEvents
Next
End Function
第二部分代码是搜索文件夹下的文件时不包含子目录,这个是借助FileListBox,同样把找到的文件放在List1中。
File1.path = FolderPath'之前要设置File1的Pattern属性
For i = 0 To File1.ListCount - 1
List1.AddItem txtFolderPath & File1.List(i)
FindFileNum = FindFileNum + 1
Next
板凳
tanchuhan [专家分:15140] 发布于 2008-03-26 23:29:00
Option Explicit
Private Sub Form_Load()
Dim sFile As String
sFile = Dir("C:\*.txt")
Do While (Len(sFile))
List1.AddItem sFile
sFile = Dir()
Loop
End Sub
3 楼
老大徒伤悲 [专家分:29120] 发布于 2008-03-28 09:35:00
公共对话框,过滤。
我来回复