Date: 02-16-2022
Return to Index
created by gbSnippets
'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
http://www.garybeene.com/sw/gbsnippets.htm