如何获取文件的当前位置

use*_*835 2 file go

我正在逐部分读取文件并想要打印文件位置(字节位置)。示例代码片段:

inFile *os.File
inFile, err := os.Open(myfile)
size := make([]byte, some_size)
content_size, err := inFile.Read(size)
Run Code Online (Sandbox Code Playgroud)

现在这是在具有不同缓冲区大小的循环中完成的。那么我是否必须维护一个变量,将作为 Read 返回数据获得的内容大小相加?

相反,我可以在所有读取操作完成后获取文件指针的位置(字节)吗?如何获取文件的当前位置?

Cer*_*món 5

函数File.Seek返回文件中的结果偏移量。要获取当前偏移量,请从当前位置查找零字节:

 offset, err := f.Seek(0, io.SeekCurrent)
Run Code Online (Sandbox Code Playgroud)