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
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
您可能感兴趣的文章:- 基于golang uint8、int8与byte的区别说明
- golang 监听服务的信号,实现平滑启动,linux信号说明详解
- golang 实现时间戳和时间的转化
- Golang Gob编码(gob包的使用详解)
- golang如何获得一个变量的类型
- golang 如何实现HTTP代理和反向代理
- Golang实现http文件上传小功能的案例
- golang值类型转换成[]uint8类型的操作