登录
首页 >  Golang >  Go问答

File.Readdir() 不能被多次调用吗?

来源:stackoverflow

时间:2024-04-12 17:18:32 451浏览 收藏

大家好,今天本人给大家带来文章《File.Readdir() 不能被多次调用吗?》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

问题内容

当我学习golang时,我编写如下代码:

list1,_ := f.Readdir(-1)
len(list1) //some value

list2,_ := f.Readdir(-1)
len(list2) //0

当 os.file 的方法 readdir() 多次调用时,它总是返回一个空的 []fileinfo。

我想知道为什么?以及如何让我的代码工作?


解决方案


根据 golang 规范 Readdir

它返回空,因为您已到达文件末尾 eof。如果你想再次读取同一个文件。您应该将指针移动到文件的开头以再次读取它。

list1,_ := f.readdir(-1)
len(list1) //some value

if _, err := f.seek(0, 0); err != nil { // seek to the start of the file
    panic(err)
}

list2,_ := f.readdir(-1)
len(list2) // will not return 0

查找文件指针很容易:

func (f *File) Seek(offset int64, whence int) (ret int64, err error)

以上就是《File.Readdir() 不能被多次调用吗?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>