In golang, if I have an os.FileInfo
, is there any way to open an *os.File
from that by itself without the original path?
Let's say I had something like this:
package main
import (
"os"
"path/filepath"
"strings"
)
var files []os.FileInfo
func 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
}
}
}
Is there a way to convert FileInfo
to * File
? The code I'm actually working with isn't based on filepath.Walk
; but I do get an []os.FileInfo
slice back. I still have the root directory, and the file name, but it seems like any further sub-tree information has gone by this stage.