Try this:
Strict Global window:TGadget=CreateWindow("My Window",50,50,240,240) Global treeview:TGadget=CreateTreeView(0,0,200,200,window) SetGadgetLayout treeview,2,2,2,2 Global root:TGadget=TreeViewRoot(treeview) Global Drive:String="C:" Global Direc:String="library" Global directory:TGadget directory=AddTreeViewNode(Drive,root) directory=AddTreeViewNode(Direc,directory) Global Previous:TGadget ListFiles(directory, Drive+Direc) While WaitEvent() Print CurrentEvent.ToString() Select EventID() Case EVENT_WINDOWCLOSE End End Select Wend Function ListFiles( folder:TGadget, rootdir:String) Local dir:Int = ReadDir( rootdir) Local subfolder:TGadget If Not dir Then Return 'If Not rootdir.EndsWith("/") Then rootdir:+ "/" Repeat Local fn:String = NextFile(dir) If Not fn Then Exit ' <-- this is important, we dont want an endless loop If FileType( rootdir+"/"+fn) = 2 And fn<>"." And fn<>".." Then subFolder = AddTreeViewNode( fn, folder ) ListFiles( subFolder, rootdir+"/"+fn) ' <-- recurse over this folder EndIf Forever CloseDir dir EndFunction