vb.net編程查找搜索指定目錄下面的所有文件和其子目錄下的文件,方法如下:
''=============================================''名稱:?FindPath
''作用:?查找搜索指定目錄下面的所有文件和其子目錄下的文件
''參數:strPath?要查找的目錄,
''strFiles?用於存查找結果的緩沖區,String?類型的動態數組,調用時事先初始化,?如Redim?strFiles(0)
''FileCount?用於返回文件個數
''=============================================
Public?Sub?FindPath(ByVal?strPath?As?String,?strFiles()?As?String,?FileCount?As?Long)
Dim?strDirs()As?String
Dim?strResultAs?String
Dim?FileLimitAs?Long
Dim?dirLimitAs?Long
Dim?dirCountAs?Long
Dim?IAs?Long
FileLimit?=?UBound(strFiles)?+?1
dirLimit?=?0
If?Right$(strPath,?1)?<>?"/"?Then?strPath?=?strPath?&?"/"
strResult?=?Dir(strPath,?vbDirectory?+?vbSystem?+?vbReadOnly?+?vbHidden?+?vbNormal?+?vbArchive)
Do?While?Len(strResult)?>?0
If?strResult?<>?"."?And?strResult?<>?".."?Then
If?(GetAttr(strPath?&?strResult)?And?vbDirectory)?<>?vbDirectory?Then
If?FileCount?>=?FileLimit?Then
ReDim?Preserve?strFiles(FileLimit?+?10)
FileLimit?=?FileLimit?+?10
End?If
strFiles(FileCount)?=?strPath?&?strResult
FileCount?=?FileCount?+?1
Else
If?dirCount?>=?dirLimit?Then
ReDim?Preserve?strDirs(dirLimit?+?10)
dirLimit?=?dirLimit?+?10
End?If
strDirs(dirCount)?=?strPath?&?strResult
dirCount?=?dirCount?+?1
End?If
End?If
strResult?=?Dir(,?vbDirectory?+?vbSystem?+?vbReadOnly?+?vbHidden?+?vbNormal?+?vbArchive)
Loop
For?I?=?0?To?dirCount?-?1
Call?FindPath(strDirs(I),?strFiles,?FileCount)
Next?I
End?Sub