登录
首页 >  Golang >  Go问答

如何在 go 中模拟/抽象文件系统?

来源:Golang技术栈

时间:2023-04-14 20:01:15 356浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《如何在 go 中模拟/抽象文件系统?》,就很适合你!文章讲解的知识点主要包括golang,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我希望能够将我的 go 应用程序发出的每次写入/读取记录到底层操作系统,并且(如果可能的话)完全用仅驻留在内存中的 FS 替换 FS。

可能吗?如何?也许有一个现成的解决方案?

正确答案

这直接来自 Andrew Gerrand 的关于 Go 的 10 件你(可能)不知道的事情:

var fs fileSystem = osFS{}

type fileSystem interface {
    Open(name string) (file, error)
    Stat(name string) (os.FileInfo, error)
}

type file interface {
    io.Closer
    io.Reader
    io.ReaderAt
    io.Seeker
    Stat() (os.FileInfo, error)
}

// osFS implements fileSystem using the local disk.
type osFS struct{}

func (osFS) Open(name string) (file, error)        { return os.Open(name) }
func (osFS) Stat(name string) (os.FileInfo, error) { return os.Stat(name) }

为此,您需要编写代码以获取fileSystem参数(可能将其嵌入到其他类型中,或者让nil表示默认文件系统)。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

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