Posted: Sun Feb 16, 2003 7:55 am
Restored from previous forum. Originally posted by Inner.
;=============== CUT HERE ==============
#WindowWidth = 325
#WindowHeight = 580
;-----------------------------------------------------------------------------
;
; Scan Files
;
;-----------------------------------------------------------------------------
Procedure FileScan(gadget,path$)
If ExamineDirectory(1024, path$, "*.*")
Repeat
FileType = NextDirectoryEntry()
FileName$ = DirectoryEntryName()
If FileType = 1
AddGadgetItem(gadget,0,FileName$)
EndIf
Until FileType=0
EndIf
EndProcedure
;-----------------------------------------------------------------------------
;
; Scan Folders Recursive, and obtain file tree
;
;-----------------------------------------------------------------------------
Procedure Recursive_FileScan(gadget,path$,dir_num)
Debug(dir_num)
If ExamineDirectory(dir_num, path$, "*.*")
Repeat
FileType = NextDirectoryEntry()
FileName$ = DirectoryEntryName()
If FileType = 2
If FileName$ "." And FileName$ ".."
fullpath$=path$+FileName$+"\"
If(dir_num=0) : CloseTreeGadgetNode(gadget) : EndIf
AddGadgetItem(gadget,0,FileName$+Str(dir_num))
OpenTreeGadgetNode(gadget)
FileScan(gadget,fullpath$)
If(dir_num=>1) : CloseTreeGadgetNode(gadget) : EndIf
Recursive_FileScan(gadget,fullpath$,dir_num+1)
UseDirectory(dir_num)
EndIf
EndIf
Until FileType=0
EndIf
EndProcedure
;-----------------------------------------------------------------------------
;
; Wrapper Procedure
;
;-----------------------------------------------------------------------------
Procedure ScanToTreeView(gadget,path$)
FileScan(gadget,path$)
Recursive_FileScan(gadget,path$,0)
EndProcedure
If OpenWindow(0, 100, 120, #WindowWidth, #WindowHeight, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget, "PB - Organizer")
If CreateGadgetList(WindowID())
Text$ = "First Item"
StringGadget(1, 10, 20, 300, 100, Text$ )
tv_view=TreeGadget (2, 10, 150, 300, 400, #PB_Tree_AlwaysShowSelection )
ButtonGadget(3, 40, 125, 80, 20, "Add Item")
ButtonGadget(4, 120, 125, 80, 20, "Insert Item")
ButtonGadget(5, 200, 125, 80, 20, "Add Group")
ScanToTreeView(2,"D:\IT\")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID()
Case 2
Case 3
Case 4
Case 5
EndSelect
EndIf
Until EventID = #PB_EventCloseWindow
EndIf
End
;=============== END CUT HERE ==============
if you change this line from " If(dir_num=>1) : CloseTreeGadgetNode(gadget) : EndIf "
to " If(dir_num=>8) : CloseTreeGadgetNode(gadget) : EndIf "
it will crash, it's also not going beond 2 sub trees deep for some odd reason.
;=============== CUT HERE ==============
#WindowWidth = 325
#WindowHeight = 580
;-----------------------------------------------------------------------------
;
; Scan Files
;
;-----------------------------------------------------------------------------
Procedure FileScan(gadget,path$)
If ExamineDirectory(1024, path$, "*.*")
Repeat
FileType = NextDirectoryEntry()
FileName$ = DirectoryEntryName()
If FileType = 1
AddGadgetItem(gadget,0,FileName$)
EndIf
Until FileType=0
EndIf
EndProcedure
;-----------------------------------------------------------------------------
;
; Scan Folders Recursive, and obtain file tree
;
;-----------------------------------------------------------------------------
Procedure Recursive_FileScan(gadget,path$,dir_num)
Debug(dir_num)
If ExamineDirectory(dir_num, path$, "*.*")
Repeat
FileType = NextDirectoryEntry()
FileName$ = DirectoryEntryName()
If FileType = 2
If FileName$ "." And FileName$ ".."
fullpath$=path$+FileName$+"\"
If(dir_num=0) : CloseTreeGadgetNode(gadget) : EndIf
AddGadgetItem(gadget,0,FileName$+Str(dir_num))
OpenTreeGadgetNode(gadget)
FileScan(gadget,fullpath$)
If(dir_num=>1) : CloseTreeGadgetNode(gadget) : EndIf
Recursive_FileScan(gadget,fullpath$,dir_num+1)
UseDirectory(dir_num)
EndIf
EndIf
Until FileType=0
EndIf
EndProcedure
;-----------------------------------------------------------------------------
;
; Wrapper Procedure
;
;-----------------------------------------------------------------------------
Procedure ScanToTreeView(gadget,path$)
FileScan(gadget,path$)
Recursive_FileScan(gadget,path$,0)
EndProcedure
If OpenWindow(0, 100, 120, #WindowWidth, #WindowHeight, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget, "PB - Organizer")
If CreateGadgetList(WindowID())
Text$ = "First Item"
StringGadget(1, 10, 20, 300, 100, Text$ )
tv_view=TreeGadget (2, 10, 150, 300, 400, #PB_Tree_AlwaysShowSelection )
ButtonGadget(3, 40, 125, 80, 20, "Add Item")
ButtonGadget(4, 120, 125, 80, 20, "Insert Item")
ButtonGadget(5, 200, 125, 80, 20, "Add Group")
ScanToTreeView(2,"D:\IT\")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID()
Case 2
Case 3
Case 4
Case 5
EndSelect
EndIf
Until EventID = #PB_EventCloseWindow
EndIf
End
;=============== END CUT HERE ==============
if you change this line from " If(dir_num=>1) : CloseTreeGadgetNode(gadget) : EndIf "
to " If(dir_num=>8) : CloseTreeGadgetNode(gadget) : EndIf "
it will crash, it's also not going beond 2 sub trees deep for some odd reason.