VB 使用 Dir 函数遍历文件夹
语法:
Dir[(pathname[,attributes])] Dir 函数的语法具有以下几个部分: 以 vbDirectory 属性来调用 Dir 不能连续地返回子目录。!!! 以下是VB帮助自带查目录的例子,明确的指出目录必须要用GetAttr!!! ' 显示 C: 目录下的名称。 Debug.Print MyName ' 如果它是一个目录,将其名称显示出来。
用VB函数Dir实现递归搜索目录 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '函数GetExtName '功能:得到文件后缀名(扩展名) '输入:文件名 '输出:文件后缀名(扩展名) ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Public Function GetExtName(strFileName As String) As String Dim lDirCount As Long On Error GoTo MyErr If Right(strPath,1) <> "" Then strPath = strPath + "" strFile = Dir(strPath,vbDirectory Or vbHidden Or vbNormal Or vbReadOnly) While strFile <> "" '搜索当前目录 DoEvents If (GetAttr(strPath + strFile) And vbDirectory) = vbDirectory Then '如果找到的是目录 If strFile <> "." And strFile <> ".." Then '排除掉父目录(..)和当前目录(.) lDirCount = lDirCount + 1 '将目录数增1 ReDim Preserve strFileDir(lDirCount) As String strFileDir(lDirCount - 1) = strFile '用动态数组保存当前目录名 End If Else If strSearch = "" Then Form1.List1.AddItem strPath + strFile ElseIf LCase(GetExtName(strPath + strFile)) = LCase(GetExtName(strSearch)) Then '满足搜索条件,则处理该文件 Form1.List1.AddItem strPath + strFile '将文件全名保存至列表框List1中 End If End If strFile = Dir Wend For i = 0 To lDirCount - 1 Form1.Label3.Caption = strPath + strFileDir(i) Call search(strPath + strFileDir(i),strSearch) '递归搜索子目录 Next ReDim strFileDir(0) '将动态数组清空 search = True '搜索成功 Exit Function MyErr: search = False '搜索失败 End Function (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |