Go语言 正在为Readdir模拟响应创建os.FileInfo结构

gpnt7bae  于 2023-03-10  发布在  Go
关注(0)|答案(1)|浏览(125)

我试着模拟os.Readdir方法来测试阅读一些目录信息,而不需要按照测试要求实际形成目录。我试着创建一个FileInfo对象切片,这是os.Readdir的返回值,但是当我试着创建一个FileInfo对象时,我无法实际设置它的值。我在fileinfo包中看到一个“New”函数,但是当我实际调用它的时候,它看起来是不可用的。
我也尝试过这样示例化一个FileInfo对象(使用了os.FileInfo和fs.FileInfo),但都没有成功,是不是我遗漏了什么简单的东西,或者是接口有什么奇怪的地方,或者是Go语言中有什么东西阻止了我像其他方法一样示例化这个对象?

os.FileInfo{
  Name: "test",
  Size: 100,
}
h79rfbju

h79rfbju1#

fs.FileInfo是一个接口,而不是一个结构。您需要声明自己的具体类型来实现它的所有方法,例如:

package test_pkg

type fakeFileInfo struct {
  name string
  size int64
  // ...
}

func (info *fakeFileInfo) Name() string {
  return info.name;
}

func (info *fakeFileInfo) Size() int64 {
  return info.size;
}

// ...

相关问题