为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
德玛西亚99 2021-05-03 20:21:11
我正在尝试使用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:   folder1file:  folder1/file1.txtfile:  folder1/file2.txtfile:  folder1/file3.txtfile:  folder1/file4.txtdir:   folder1/folder2file:  folder1/folder2/file5.txtfile:  folder1/folder2/file6.txtfile:  folder1/folder2/file7.txtfile:  folder1/folder2/file8.txtfile:  folder1/folder2/file9.txt对于树形结构,我考虑过使用类似的方法:type File struct {    Name string    Content string}type Folder struct {    Name    string    Files   []File    Folders []Folder}但是当然欢迎任何建议。如何在go中将其转换为树结构?有没有更简单的方法可以做到这一点?
查看完整描述

3 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

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

我知道对于这个问题的原始作者来说来不及了,但是如果有人正在寻找类似的东西,无论如何都要在这里发布。拉取请求很容易被接受:)


查看完整回答
反对 回复 2021-05-17
  • 3 回答
  • 0 关注
  • 294 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信