I need help. Usually I see very easily what to do, but I have been working on this all day and do not get anywhere.
I want to use this nice piece of code posted by Tom Iwaniec in https://forum.xojo.com/8605-read-all-files-inside-a-folder-including-files-in-subfolders/0
to fill Einhugur Treeview.
Sub ListFiles(theFolder as FolderItem)
if theFolder<>nil then
if theFolder.Directory then
for i as Integer=1 to theFolder.Count
if theFolder.Item(i).Directory then
ListFiles(theFolder.Item(i))
else
listbox1.addrow theFolder.Item(i).name
end if
next
end if
end if
End Sub
I have been looking at this in the demo project Treeview 2 columns exampler :
[code] me.AppendNode(new TreeViewNode(“Test1”,DocumentIconNormal))
me.AppendNode(new TreeViewNode(“Test2”,DocumentIconNormal))
me.AppendNode(new TreeViewNode(“Test3”,DocumentIconNormal))
node = new TreeViewNode(“Test4”,FolderIconNormal)
node.AppendNode(new TreeViewNode(“Test4a”,DocumentIconNormal))
node2 = new TreeViewNode(“Test4b”,FolderIconNormal)
node2.AppendNode(new TreeViewNode(“Test4b - 1”,FolderIconNormal))
node2.AppendNode(new TreeViewNode(“Test4b - 2”,FolderIconNormal))
node2.AddSubItem(“Some Text”)
node2.SetExpanded(true,false)
node.AppendNode(node2)
node.AppendNode(new TreeViewNode(“Test4c”,DocumentIconNormal))
node.AppendNode(new TreeViewNode(“Test4d”,DocumentIconNormal))
node.AppendNode(new TreeViewNode(“Test4e”,DocumentIconNormal))
node.AppendNode(new TreeViewNode(“Test4f”,DocumentIconNormal))
node.AddSubItem(“More test”)
node.SetExpanded(true,false)
me.AppendNode(node)[/code]
This creates a nice embedded structure with folders that can be expanded or folded.
I guess I am stuck because the recursion is done by the method above by calling itself. I do not see very well how to append the node when it had got to the last level of folder. I could create cascading methods, but it would be awfully cumbersome and limited in number of levels, whereas that elegant method does unlimited levels in very few lines.
I will very much appreciate ideas to spot the last level of imbrication. Or any advice for that matter.
TIA