当前位置 博文首页 > golang 如何获取文件夹下面的文件列表

    golang 如何获取文件夹下面的文件列表

    作者:解灵运 时间:2021-05-30 17:43

    golang的文档里面比较容易找到的一个方法是filepath.Walk,这个方法有个问题是会自动递归遍历当前目录的子目录,其实我们通常只是想得到一个目录下面的文件列表,并不需要这么多的信息,同时这个方法代码写起来也比较多比较复杂,我们也没有必要这么做。

    如果仅仅是想获取一个目录下面的文件和文件夹的列表,有两个比较简单的方法

    利用ioutil的ReadDir方法

    package main 
    import (
        "fmt"
        "io/ioutil"
    )
     
    func main() {
        files, _ := ioutil.ReadDir("./")
        for _, f := range files {
                fmt.Println(f.Name())
        }
    }

    利用filepath的Glob方法

    package main  
    import (
        "fmt"
        "path/filepath"
    )
     
    func main() {
        files, _ := filepath.Glob("*")
        fmt.Println(files) // contains a list of all files in the current directory
    }

    补充:golang获取文件/目录(包含下面的文件)的大小

    看代码吧~

    func DirSize(path string) (int64, error) {
     var size int64
     err := filepath.Walk(path, func(_ string, info os.FileInfo, err error) error {
      if !info.IsDir() {
       size += info.Size()
      }
      return err
     })
     return size, err
    }

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持站长博客。如有错误或未考虑完全的地方,望不吝赐教。

    js
    下一篇:没有了