SubFolder Search

Category: gbSearch

Date: 02-16-2022

Return to Index


 
 
'Compilable Example:  (Jose Includes)
#Compiler PBWin 9, PBWin 10
#Compile EXE
#Dim All
%Unicode=1
#Include "Win32API.inc"
Global hDlg as Dword
 
Function PBMain() As Long
   Dialog New Pixels, 0, "Test Code",300,300,200,100, %WS_OverlappedWindow To hDlg
   Control Add Button, hDlg, 100,"Find Folders", 50,10,100,20
   Control Add TextBox, hDlg, 200,"c:\", 50,40,100,20
   Dialog Show Modal hDlg Call DlgProc
End Function
 
CallBack Function DlgProc() As Long
   If CB.Msg = %WM_Command AND CB.Ctl = 100 AND CB.Ctlmsg = %BN_Clicked Then
      Local temp$
      Control Get Text hDlg, 200 To temp$
      GetFolderList temp$
   End If
End Function
 
Sub GetFolderList(sFolder As String)
   Local fMax, iPOS, FolderCount, iStart, iEnd As Long, temp$
   MousePtr 11 : iStart = GetTickCount : fMax = 10000
   Dim Folders(fMax) As String
   Folders(FolderCount) = sFolder
   While Len(Folders(iPOS))
      temp$ = Dir$(Build$(Folders(iPOS),"\*.*"), Only %SubDir)  'subfolders only
      While Len(temp$)
         Incr FolderCount
         If FolderCount = UBOund(Folders) Then ReDim Preserve Folders(UBound(Folders)+10000) : Beep    'just so I'll know it did it
         Folders(FolderCount) =  Build$(Folders(iPos),"\",temp$)
         temp$ =  Dir$ (Next)
      Wend
      Incr iPOS
   Wend
   ReDim Preserve Folders(FolderCount)
   iEnd = GetTickCount : MousePtr 0
   ? Format$((iEnd - iStart)/1000,3) & " seconds     " + Str$(FolderCount) + " folders found."
End Sub
 
'gbs_00922
'Date: 03-10-2012


created by gbSnippets
http://www.garybeene.com/sw/gbsnippets.htm