go - 在 GO 中获取实际文件大小与表观大小

标签 go filesystems sparse-file

fs.sys.Size”(fs 是 os 包中的 fileStat)返回文件的表观大小。这在处理稀疏文件时并不理想。

有没有办法在 GO 中获取实际文件大小?还是所有应用程序都必须获得将空 block 表示为真实 block 的转换后元数据?

最佳答案

看起来像 Stat_t structure使用来自 Syscall package 的 stat/fstat 调用填充是你所需要的全部。只需将 block 乘以 512 即可得到消耗的磁盘空间。

关于go - 在 GO 中获取实际文件大小与表观大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40795488/

相关文章:

testing - 如何在 GO 中测试响应体?

mysql - 为什么 sql.Open() 不应该返回 nil 作为错误?

c++ - Windows map 文件系统

javascript - 如何通过 chrome 调试工具在运行时将数组对象保存到文件?

file - 为什么程序要/偏爱使用稀疏文件?

file - io.Copy() 的稀疏文件很大

android - 在下载文件之前预先为其分配空间

go - 从Windows交叉编译到其他操作系统

go - 是否有查找完整文件权限的功能?

linux - 当 Linux 操作系统非正常关闭/重置时,如何防止文件/磁盘损坏?