在Go中获取给定文件描述符的文件大小

时间:2018-07-27 17:40:02

标签: file go operating-system

如果给定路径,我将使用它来获取文件大小

file, _ := os.Open(path)
fi, _ := file.Stat()
fsuze := fi.Size()

但是如果仅给 指定fd,如何获取文件大小? 在C语言中,Go像这样有什么办法吗?

lseek(fd, 0, SEEK_END)

2 个答案:

答案 0 :(得分:2)

您可以使用os.NewFile函数从文件描述符中创建新的*os.File

您可以使用Seek

offset, err := f.Seek(0, os.SEEK_END)

但是由于您已经拥有*os.File,因此即使它直接从文件描述符派生,也可以调用Stat

答案 1 :(得分:0)

尝试使文件开始

fileInfo, err := file.Stat()
if err != nil {...
}
files fileInfo.Size())