英文:
Get the actual file size vs apparent size in GO
问题
"fs.sys.Size"(其中fs是os包中的fileStat)返回文件的表面大小。这在处理稀疏文件时并不理想。
在Go语言中有没有一种方法可以获取实际的文件大小?或者所有应用程序都必须获取将空块表示为实际块的转换后的元数据?
英文:
"fs.sys.Size" (fs being fileStat in the os package) returns the apparent size of a file. This isn't ideal when dealing with sparse files.
Is there a way to get the actual file size in GO? Or all applications are bound to get the converted metadata that represent empty blocks as real ones?
答案1
得分: 4
看起来你只需要使用来自Syscall包的stat/fstat调用来填充Stat_t结构体,然后将Blocks乘以512以获取所占用的磁盘空间。
Stat_t结构体:https://golang.org/pkg/syscall/#Stat_t
Syscall包:https://golang.org/pkg/syscall/
英文:
Looks like the Stat_t structure filled using stat/fstat calls from the Syscall package is all you need. Just multiply Blocks by 512 to get the disk space consumed.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论