refactor & improve the fstree logic

This commit is contained in:
2026-01-03 18:35:58 +00:00
parent cfd302ba0e
commit 87c8382e7b
4 changed files with 76 additions and 49 deletions
+2 -4
View File
@@ -14,7 +14,7 @@ import (
"path/filepath"
)
func walkFileSystemAndBuildTree(rootPath string, node *FsNode, flatTree *[]*FsNode) error {
func walkFileSystemAndBuildTree(rootPath string, node *FsNode) error {
if node == nil {
return errors.New("node cannot be nil")
}
@@ -43,7 +43,6 @@ func walkFileSystemAndBuildTree(rootPath string, node *FsNode, flatTree *[]*FsNo
}
}
*flatTree = append(*flatTree, node) // add self
for _, file := range files {
newNode := &FsNode{
nodeType: FileNode,
@@ -53,7 +52,6 @@ func walkFileSystemAndBuildTree(rootPath string, node *FsNode, flatTree *[]*FsNo
expanded: false,
}
node.children = append(node.children, newNode)
*flatTree = append(*flatTree, newNode)
}
for _, folder := range folders {
@@ -65,7 +63,7 @@ func walkFileSystemAndBuildTree(rootPath string, node *FsNode, flatTree *[]*FsNo
expanded: true, // all expanded by default
}
node.children = append(node.children, newNode)
walkFileSystemAndBuildTree(newNode.path, newNode, flatTree)
walkFileSystemAndBuildTree(newNode.path, newNode)
}
return nil