Golang:如何获取目录总大小?
发布时间:2020-12-16 19:23:09 所属栏目:大数据 来源:网络整理
导读:所以我试图使用golang获取目录的总大小,到目前为止我有这个 var dirSize int64 = 0func readSize(path string,file os.FileInfo,err error) error { if !file.IsDir() { dirSize += file.Size() } return nil} func DirSizeMB(path string) float64 { dirSiz
所以我试图使用golang获取目录的总大小,到目前为止我有这个
var dirSize int64 = 0 func readSize(path string,file os.FileInfo,err error) error { if !file.IsDir() { dirSize += file.Size() } return nil } func DirSizeMB(path string) float64 { dirSize = 0 filepath.Walk(path,readSize) sizeMB := float64(dirSize) / 1024.0 / 1024.0 sizeMB = Round(sizeMB,.5,2) return sizeMB } 所以问题是dirSize全局变量是否会导致问题,如果是,我如何将其移动到DirSizeMB函数的范围?
像这样的全球化充其量是不好的做法.
如果同时调用DirSizeMB,它也是一场竞赛. 简单的解决方案是使用封盖,例如: 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 } Playground 如果你认为看起来更好,你可以将闭包赋值给变量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- grails – Controller @Mixin在重新编译运行应用程序后才能
- [Perl] 在 Perl 下处理时间的小技巧 strftime
- 大数据分析:逃离北上广后他们究竟去了哪里?
- Delphi 中的属性property
- LUA中遇到这个错误attempt to call a nil value (global &#
- Groovy + Grails 资源汇总(持续追加中......)
- perl 中文 编码 uincode html 转换 中文
- delphi – 如何获取实例已经泄露内存的定制结构的名称?
- delphi – 升级到D2009(排除Unicode)的主要动机是什么?
- delphi – 循环参考修复?