为了账号安全,请及时绑定邮箱和手机立即绑定

从 FileInfo 打开文件

从 FileInfo 打开文件

Go
慕婉清6462132 2021-10-04 16:03:00
在 golang 中,如果我有一个os.FileInfo,有没有办法在*os.File没有原始路径的情况下从它本身打开一个?假设我有这样的事情:package mainimport (    "os"    "path/filepath"    "strings")var files []os.FileInfofunc walker(path string, info os.FileInfo, err error) error {    if strings.HasSuffix(info.Name(), ".txt") {        files = append(files, info)    }    return nil}func main() {    err := filepath.Walk("/tmp/foo", walker)    if err != nil {        println("Error", err)    } else {        for _, f := range files {            println(f.Name())            // This is where we'd like to open the file        }    }}有没有办法转换FileInfo为* File?我实际使用的代码不是基于filepath.Walk; 但我确实得到了[]os.FileInfo一片。我仍然有根目录和文件名,但在这个阶段似乎任何进一步的子树信息都消失了。
查看完整描述

3 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

不。FileInfo接口根本不公开路径,os并且ioutil包中提供的所有方法都接受路径名作为字符串。


查看完整回答
反对 回复 2021-10-04
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

不,不能仅使用 FileInfo 打开文件。os.Open 只需要一个字符串。您应该始终拥有路径或父路径,因为这是获取 FileInfo 的唯一方法。


查看完整回答
反对 回复 2021-10-04
  • 3 回答
  • 0 关注
  • 249 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信