目录列表

使用ioutil.ReadDir包中的功能io/ioutil。它返回包含类型元素的排序切片os.FileInfo。

此示例中的代码打印当前目录中所有文件名的排序列表。

files, err := ioutil.ReadDir(".")
if err != nil {
    log.Fatal(err)
}
for _, f := range files {
    fmt.Println(f.Name())
}

示例输出:

dev
etc
tmp
usr

访问目录树中的所有文件和文件夹
使用filepath.Walk包中的功能path/filepath。

它遍历一个文件树filepath.WalkFunc,为树中的每个文件或目录调用一个类型的函数,包括根。
文件按词汇顺序走。
不遵循符号链接。
此示例中的代码列出了以当前目录为根的文件树中所有文件和目录的路径和大小。

err := filepath.Walk(".",
    func(path string, info os.FileInfo, err error) error {
    if err != nil {
        return err
    }
    fmt.Println(path, info.Size())
    return nil
})
if err != nil {
    log.Println(err)
}

示例输出:

. 1644
dev 1644
dev/null 0
dev/random 0
dev/urandom 0
dev/zero 0
etc 1644
etc/group 116
etc/hosts 20
etc/passwd 0
etc/resolv.conf 0
tmp 548
usr 822
usr/local 822
usr/local/go 822
usr/local/go/lib 822
usr/local/go/lib/time 822
usr/local/go/lib/time/zoneinfo.zip 366776