top
Loading...
用VB實現文件查找功能
br> 在VB中要實現查找文件功能,我們可以利用VB的DIR函數進行遞歸來實現。每次使用DIR函數后,比較是否有要查找的文件,再檢查是否有子目錄,若有,利用遞歸繼續查找,這樣可對整個盤進行查找。
下面是一個例子,查找DOS目錄下的所有EXE文件,統計EXE文件的數目并列出文件名。本程序會查找當前路徑下的所有文件和子目錄,與WIN95的“包含子文件夾”的查找功能類似。
程序與注釋如下:
1.在窗體中加一命令按鈕Command1,Caption=查找示例,雙擊此按鈕,寫如下代碼:
Private Sub Command1-Click()
Dim ff() As String′定義一個字符串數組用來保存找到的文件名稱
Dim fn As Long′保存找到的文件數目
fn=TreeSearch(″C:%%dos″,″*.exe″,ff())
Print″找到文件數目為″;fn
For I=1 To fn
Print ff(I)
Next
End Sub
2.插入一模塊Modulel.bas,寫如下代碼:
Option Explicit
Public Function TreeSearch(ByVal sPath As String,ByVal sFileSpec As String,sFiles() As String)
As Long
Static 1Files As Long′文件數目
Dim sDir As String
Dim sSubDirs() As String′存放子目錄名稱
Dim 1Index As Long
If Right(sPath,1)$#@60;$#@62;″%%″Then sPath=sPath&″%%″
sDir=Dir(sPath & sFileSpec)
′獲得當前目錄下文件名和數目
Do While Len(sDir)
1Files=1Files+1
ReDim Preserve sFiles(1 To 1Files)
sFiles(1Files)=sPath&sDir
sDir=Dir
Loop
′獲得當前目錄下的子目錄名稱
1Index=0
sDir=Dir(sPath&″*.*″,16)
Do While Len(sDir)
If Left(sDir,1)$#@60;$#@62;″.″Then ′skip.and..
′找出子目錄名
If GetAttr(sPath & sDir)And vbDirectory Then
1Index=lIndex +1
′保存子目錄名
Redim Preserve sSubDirs(1 To 1Index)
sSubDirs(1Index)=sPath & sDir &″%%″
End If
End If
sDir=dir
Loop
For 1Index=1 To 1Index
′查找每一個子目錄下文件,這里利用了遞歸
Call TreeSearch(sSubDirs(1Index),sFileSp sFiles())
Next 1Index
TreeSearch=1Files
End Function
3.保存文件,按F5運行,單擊命令按鈕即可。
程序運行環境:VB 4.0 (32位),中文WIN95。
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗