说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB如何用Dir()函数来列出C下所有TMP文件并且用文本框输出

HTML文档下载 WORD文档下载 PDF文档下载
VB如何用Dir()函数来列出C下所有TMP文件并且用文本框输出
问题: 如何用Dir()函数列出C:\下所有*.TMP文件,并且用文本框输出?
  答:下面是一个列出指定目录下所有符合要求的文件名的函数:
  Public Function AutoListFiles(ByVal sDirName As String,ByVal FileFilter As String ) As Boolean
  On Error GoTo RF_ERROR
  Dim sName As String, sFile As String, sExt As String
  Dim sDirList() As String, iDirNum As Integer, i As Integer
  ′首先枚举所有文件
  sFile = Dir(sDirName + FileFilter, vbNormal + vbArchive + vbHidden)
  Do While Len(sFile) >0
  sFile = UCase(Trim(sFile))
  ′在此处可以将 sFile 加入到一个 Text 控件...
  sFile = Dir ′下一个文件
  Loop
  iDirNum = 0
  sName = Dir(sDirName + ″*.*″, vbDirectory + vbNormal)
  Do While Len(sName) >0
  If sName <> ″.″ And sName <> ″..″ Then
  iDirNum = iDirNum + 1
  ReDim Preserve sDirList(1 To iDirNum)
  sDirList(iDirNum) = sDirName + sName + ″\″
  End If
  sName = Dir ′下一个目录
  Loop
  For i = 1 To iDirNum
  AutoListFiles sDirList(i) ′递归调用
  Next
  End If
  RF_EXIT:
  AutoListFiles = True
  Exit Function
  RF_ERROR:
  MsgBox Err.Description, vbCritical, ″″
  Resume RF_EXIT
  End Function
  调用上述函数的示例:
  AutoListFiles(″C:\″,″*.TMP″)
  之所以采用上述先处理文件,再处理子目录,一是思路较清晰,另外也有模仿 Prolog 语言中的“尾递归”的想法,当然,VB中是不支持尾递归的。

备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘