我试图用go语言将文件夹的目录层次结构提取到数据结构中。 filepath.Walk
似乎是要走的路,但我迄今所能做的只是打印文件和文件夹的名称。下面是我使用的是什么:使用go语言提取目录层次结构
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
}
但当然任何欢迎提出建议。
我该如何将它转换为树形结构?有没有更简单的方法来做到这一点?
我得到这个意义上,你的回答是真实的但它并不在我的电脑上运行'说13点25分23秒2012/09/30预计嵌套页面中的文件夹页面退出状态1' – none
不知道什么会导致此问题。正如我所说,这是快速和肮脏的代码来说明这个概念。您应该能够从那里调试和/或更改它。 –
由于代码比我预期的要长,我决定用我的设计换一种方式。同时,如果有人想出一个优雅的解决方案,我会暂时将问题留待开放。感谢您的帮助.. – none