gpt4 book ai didi

tree - 使用go语言提取目录层次结构

转载 作者:IT王子 更新时间:2023-10-29 01:14:43 26 4
gpt4 key购买 nike

我正在尝试将文件夹的目录层次结构提取到 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 中将其转换为树结构?有更简单的方法吗?

最佳答案

我的一个小应用程序需要类似的东西,所以我写了一个单独的小库,供您欣赏 on Github .因为我需要为返回的 os.FileInfo 内置 JSON 序列化,所以我也添加了它。

我知道这个问题的原作者来得太晚了,但还是把它贴在这里,以防有人正在寻找类似的东西。很容易接受拉取请求:)

关于tree - 使用go语言提取目录层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12657365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com