我正在尝试使用go语言将文件夹的目录层次结构提取到数据结构中。filepath.Walk似乎是要走的路,但是到目前为止,我所能做的就是打印文件和文件夹的名称。这是我正在使用的:
func main() {
visit := func(path string, info os.FileInfo, err error) error {
if info.IsDir() {
fmt.Println("dir: ", path)
} else {
fmt.Println("file: ", path)
}
return nil
}
err := filepath.Walk("./", visit)
if err != nil {
log.Fatal(err)
}
}
这将打印文件夹的名称,例如:
dir: folder1
file: folder1/file1.txt
file: folder1/file2.txt
file: folder1/file3.txt
file: folder1/file4.txt
dir: folder1/folder2
file: folder1/folder2/file5.txt
file: folder1/folder2/file6.txt
file: folder1/folder2/file7.txt
file: folder1/folder2/file8.txt
file: folder1/folder2/file9.txt
对于树形结构,我考虑过使用类似的方法:
type File struct {
Name string
Content string
}
type Folder struct {
Name string
Files []File
Folders []Folder
}
但是当然欢迎任何建议。
如何在go中将其转换为树结构?有没有更简单的方法可以做到这一点?
MMTTMM
相关分类