最近在项目中需要根据磁盘使用情况来做一下处理,发现没有什么标准库可以获取磁盘当前使用情况,在网上找了一段代码在 Linux 下运行可以,但在 Windows 跑会抛异常。
后来在网上找到了这篇文章,文章分别给出了两个平台各自获取磁盘使用情况的方法,在此基础上使用golang 的条件编译就可以实现跨平台获取了。
解决这个问题花了大半天,现在项目快结束了有时间就传到 gitlab 上了方便以后使用。
使用示例
获取包
go get gitlab.com/tingshuo/go-diskstate/
使用
import "gitlab.com/tingshuo/go-diskstate/diskstate"
import "fmt"
// example
func main() {
state := diskstate.DiskUsage("/")
fmt.Printf("All=%dM, Free=%dM, Available=%dM, Used=%dM, Usage=%d%%",
state.All/diskstate.MB, state.Free/diskstate.MB, state.Available/diskstate.MB, state.Used/diskstate.MB, 100*state.Used/state.All)
}
源码地址:https://gitlab.com/tingshuo/go-diskstate
有疑问加站长微信联系(非本文作者)