回 帖 发 新 帖 刷新版面

主题:求助:怎样获取一个目录下特定后缀的所有文件?

打算用VB2005实现,
先用FolderBrowser获取文件夹名称,再怎么提取该目录下特定后缀的所有文件名?
比如C:\test下所有*.txt文件名?(可输出至ListBox)

回复列表 (共3个回复)

沙发

我不会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

板凳

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 楼

公共对话框,过滤。

我来回复

您尚未登录,请登录后再回复。点此登录或注册