'引用FSO("工程"->"引用"->Microsoft Scripting Runtime)Dim intTemp As IntegerPrivate Sub Command2_Click() Call SearchFolder("D:\") '打印D盘下文件夹3曾文件夹的所有文件 End SubSub SearchFolder(ByVal Folder As String) Dim fso As New FileSystemObject Dim objFile As File, objFolder As Folder Set objFolder = fso.GetFolder(Folder) For Each objFile In objFolder.Files Debug.Print objFile.Path '打印文件名及路径 Next
intTemp = intTemp + 1 If intTemp = 4 Then Exit Sub
For Each objFolder In objFolder.SubFolders SearchFolder objFolder '递归遍历整颗树 Next End Sub
Sub SearchFolder(ByVal Folder As String) 'Folder 你的目录文件夹
Dim fso As Object Dim objFile, objFolder, uuFiles, objSubFloders
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder(Folder) Set uuFiles = objFolder.Files For Each objFile In uuFiles WriteFile objFile.Path Next
Set objSubFloders = objFolder.SubFolders For Each objFolder In objSubFloders WriteFile objFolder.Path SearchFolder objFolder '递归遍历文件夹 Next End Sub
Option Explicit Dim fso As FileSystemObject, F As Folder, Fc As Folders, sName As String Dim F1 As Folder Dim F2 As Folder Dim F3 As Folder Dim F4 As FoldersDim p As Boolean Dim flag As Boolean '设置结果标志'Private Sub Command1_Click() ' Dim x As String ' Dim y As String ' Dim k As String ' x = "D:\kk" ' y = "input" ' Call SearchFile(x, y) '' If Len(k) <> 0 Then '' Fso.DeleteFolder (k) '' Fso.CreateFolder (k) '' End If 'End Sub Public Function SearchFile(FolderSpec As String, Fname As String) As String
If p = True Then Exit Function Set fso = CreateObject("Scripting.FileSystemObject") Set F = fso.GetFolder(FolderSpec) Set Fc = F.SubFolders
For Each F1 In Fc If Fname = F1.Name Then MsgBox "OK" p = True Exit Function Else Call SearchFile(F1.Path, Fname) End If If p = True Then Exit Function Next End FunctionPrivate Sub Form_Load() p = False ' Dim flag As Boolean End SubPrivate Sub Command1_Click() flag = False MsgBox SearchFolder("D:\kk", "input") End SubFunction SearchFolder(ByVal Folder As String, ByVal subFolder As String) As Boolean Dim fso As New FileSystemObject Dim objFile As File, objFolder As Folder Set objFolder = fso.GetFolder(Folder) For Each objFolder In objFolder.SubFolders
If flag Then SearchFolder = True Exit Function End If
If objFolder.Name = subFolder Then Debug.Print objFolder.Path '打印子文件夹的全路径(为测试是否全部退出了所有的函数过程) flag = True Exit Function '找到后退出函数 End If SearchFolder objFolder, subFolder '递归遍历整颗树 Next End Function
如果仅仅搜索3层目标文件夹,这样做:'引用FSO("工程"->"引用"->Microsoft Scripting Runtime)Dim intTemp As IntegerPrivate Sub Command2_Click() Call SearchFolder("D:\") '打印D盘下文件夹3曾文件夹的所有文件 End SubSub SearchFolder(ByVal Folder As String) Dim fso As New FileSystemObject Dim objFile As File, objFolder As Folder Set objFolder = fso.GetFolder(Folder) If intTemp = 3 Then For Each objFile In objFolder.Files Debug.Print objFile.Path '打印文件名及路径 Next End If
intTemp = intTemp + 1 If intTemp = 4 Then Exit Sub
For Each objFolder In objFolder.SubFolders SearchFolder objFolder '递归遍历整颗树 Next End Sub
Call SearchFolder("D:\") '打印D盘下文件夹3曾文件夹的所有文件
End SubSub SearchFolder(ByVal Folder As String)
Dim fso As New FileSystemObject
Dim objFile As File, objFolder As Folder
Set objFolder = fso.GetFolder(Folder)
For Each objFile In objFolder.Files
Debug.Print objFile.Path '打印文件名及路径
Next
intTemp = intTemp + 1
If intTemp = 4 Then Exit Sub
For Each objFolder In objFolder.SubFolders
SearchFolder objFolder '递归遍历整颗树
Next
End Sub
Dim fso As Object
Dim objFile, objFolder, uuFiles, objSubFloders
On Error Resume Next
Set fso = CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder(Folder)
Set uuFiles = objFolder.Files
For Each objFile In uuFiles
WriteFile objFile.Path
Next
Set objSubFloders = objFolder.SubFolders
For Each objFolder In objSubFloders
WriteFile objFolder.Path
SearchFolder objFolder '递归遍历文件夹
Next
End Sub
Dim fso As FileSystemObject, F As Folder, Fc As Folders, sName As String
Dim F1 As Folder
Dim F2 As Folder
Dim F3 As Folder
Dim F4 As FoldersDim p As Boolean
Dim flag As Boolean '设置结果标志'Private Sub Command1_Click()
' Dim x As String
' Dim y As String
' Dim k As String
' x = "D:\kk"
' y = "input"
' Call SearchFile(x, y)
'' If Len(k) <> 0 Then
'' Fso.DeleteFolder (k)
'' Fso.CreateFolder (k)
'' End If
'End Sub
Public Function SearchFile(FolderSpec As String, Fname As String) As String
If p = True Then Exit Function
Set fso = CreateObject("Scripting.FileSystemObject")
Set F = fso.GetFolder(FolderSpec)
Set Fc = F.SubFolders
For Each F1 In Fc
If Fname = F1.Name Then
MsgBox "OK"
p = True
Exit Function
Else
Call SearchFile(F1.Path, Fname)
End If
If p = True Then Exit Function
Next
End FunctionPrivate Sub Form_Load()
p = False
' Dim flag As Boolean
End SubPrivate Sub Command1_Click()
flag = False
MsgBox SearchFolder("D:\kk", "input")
End SubFunction SearchFolder(ByVal Folder As String, ByVal subFolder As String) As Boolean
Dim fso As New FileSystemObject
Dim objFile As File, objFolder As Folder Set objFolder = fso.GetFolder(Folder) For Each objFolder In objFolder.SubFolders
If flag Then
SearchFolder = True
Exit Function
End If
If objFolder.Name = subFolder Then
Debug.Print objFolder.Path '打印子文件夹的全路径(为测试是否全部退出了所有的函数过程)
flag = True
Exit Function '找到后退出函数
End If
SearchFolder objFolder, subFolder '递归遍历整颗树
Next
End Function
Call SearchFolder("D:\") '打印D盘下文件夹3曾文件夹的所有文件
End SubSub SearchFolder(ByVal Folder As String)
Dim fso As New FileSystemObject
Dim objFile As File, objFolder As Folder
Set objFolder = fso.GetFolder(Folder)
If intTemp = 3 Then
For Each objFile In objFolder.Files
Debug.Print objFile.Path '打印文件名及路径
Next
End If
intTemp = intTemp + 1
If intTemp = 4 Then Exit Sub
For Each objFolder In objFolder.SubFolders
SearchFolder objFolder '递归遍历整颗树
Next
End Sub