Go语言计算目录大小函数: calculateDirectorySize
func (srv *DataMigrateService) calculateDirectorySize(dirPath string) (int64, error) { logger.Infof('开始计算目录大小..., 参数 dirPath:%s', dirPath) var size int64 err := filepath.Walk(dirPath, func(_ string, info os.FileInfo, err error) error { //if err != nil { // logger.Error(err.Error()) // return err //} if !info.IsDir() && info.Mode().IsRegular() { size += info.Size() } return nil }) if err != nil { logger.Error(err.Error()) return 0, err } return size, nil }
该函数使用 filepath.Walk 函数递归遍历目录,并使用 info.IsDir() 和 info.Mode().IsRegular() 判断当前项是否为文件,如果是文件则将文件大小累加到 size 变量中。最终函数返回计算得到的目录大小和可能发生的错误。
原文地址: https://www.cveoy.top/t/topic/fwft 著作权归作者所有。请勿转载和采集!