Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Const MAX_PATH = 260
Const DIRECTORY = &H10
Dim WFD As WIN32_FIND_DATA, FirstFile As Long, EndSearch As Boolean
Private Sub Search()
Dim ThisPath As String * MAX_PATH
FirstFile = FindFirstFile(CurDir + "\*", WFD)
EndSearch = False
List1.Clear
Do Until EndSearch = True
Call FindNextFile(FirstFile, WFD)
If ThisPath = WFD.cFileName Then EndSearch = True
If WFD.dwFileAttributes = DIRECTORY And WFD.cFileName > ".. " Then List1.AddItem (WFD.cFileName)
ThisPath = WFD.cFileName
Loop
End Sub
Поиск подкаталогов
Вот краткое описание проблемы: у нас есть каталог. Как записать в переменные (или в массив) все подкаталоги, подкаталоги подкаталогов и т. д.?
В API-Guide есть пример к функции FindFile... Там совсем несложно. :D
Большое спасибо!
Код:
В результате в List1 либо какой-то каталог отображается дважды, либо какой-то не отображается вообще. Что такое?
Код:
Public Sub Main()
Dim fso As New Scripting.FileSystemObject ' библиотека "Microsoft Scripting Runtime"
PrintChilds fso.GetFolder("C:\temp2")
End Sub
Private Sub PrintChilds(ff As Scripting.Folder)
Dim fo As Scripting.Folder
For Each fo In ff.SubFolders
List1.AddItem fo.path
PrintChilds fo
Next fo
End Sub
Dim fso As New Scripting.FileSystemObject ' библиотека "Microsoft Scripting Runtime"
PrintChilds fso.GetFolder("C:\temp2")
End Sub
Private Sub PrintChilds(ff As Scripting.Folder)
Dim fo As Scripting.Folder
For Each fo In ff.SubFolders
List1.AddItem fo.path
PrintChilds fo
Next fo
End Sub
Ищет и каталоги.
Большое всем спасибо!!!