猿问

来自 os.Stat/Lstat 的目录大小

假设我os.Stat()在目录上执行操作:


func main() {

    fi, _ := os.Stat("/tmp")

    println(fi.Size())

}


// 548

// Program exited.

https://play.golang.org/p/NIzGMHRYfi


[FileInfo].Size()值究竟代表什么?这不是文件大小,所以我在猜测文件数量之类的东西?节点?我在任何地方都找不到明确的答案,所以也许有人可以启发我?


月关宝盒
浏览 168回答 1
1回答

缥缈止盈

文件信息提及// length in bytes for regular files; system-dependent for others所以这真的取决于执行环境。参见例如“ ext4 在哪里存储目录大小? ”在该示例中,目录统计大小返回 4096 字节。这是目录本身的实际大小,而不是它包含的内容。stat 命令不提供查询除文件系统对象(目录或文件)大小之外的任何内容的工具。stat根本没有办法返回多个大小——所以它只能返回目录本身的大小,而不是其内容的大小。当您有硬链接文件时,“包含内容的目录大小”也变得不太清楚。
随时随地看视频慕课网APP

相关分类

Go
我要回答