需要查找目录的实际大小,其中有多个目录,这些目录应等于“ du -sh”系统命令。使用filepath.Walk来找到它,但似乎跳过了。和..在每个目录中。因此,在命令行中使用“ du -sh”和使用的文件路径包会导致大小差异。
func DirSize(path string) (int64, error) {
var size int64
err := filepath.Walk(path, func(_ string, info os.FileInfo, err error) error {
if err != nil {
return err
}
size += info.Size()
return err
})
return size, err
}
与du -sh给出的值相同,但尺寸较小