【Go语言】Golang获取文件大小

这一篇博客讨论一种实现golang获取文件大小的方法

实际当中我们往往需要获悉某一个文件的大小从而去考虑怎么为这个文件去分配存储空间,而有时候你也不知道一个路径是否是一个文件。下面的代码帮助我们判断某一个路径是一个文件夹还是一个文件,如果是文件夹会逐层去遍历,并且能够获得单个文件的大小、文件的总数和文件夹总共的大小;如果是一个文件的话则可以直接获取到其大小。有关代码的解释会在注释中体现。现在上代码:

//获取单个文件的大小
func getSize(path string) int64 {
fileInfo, err := os.Stat(path)
if err != nil {
panic(err)
}
fileSize := fileInfo.Size() //获取size
fmt.Println(path+” 的大小为”, fileSize, “byte”)
return fileSize
}

//执行函数
func process(path string) {
err := filepath.Walk(path, func(path string, f os.FileInfo, err error) error {
if f == nil {
return err
}
if !f.IsDir() {
fmt.Println(“这是一个文件 “)

} else {
fmt.Println(“这是一个目录 “)
dir_count++
}
sum_size = sum_size + getSize(path)
return nil
})
if err != nil {
fmt.Printf(“filepath.Walk() returned %vn”, err)
}
}

 

使用方式:在最前面file_path那里指定好路径即可

每一篇博客尽量讨论一个问题,以后的博客注意的。不会太长,但是需要很认真。

刘凯宁@C2P
2014年7月16日

 

Share

【Go语言】Golang获取文件大小》上有 1 条评论

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>