From a25c58462992704dbb6819769f530b6cc6a8ebe3 Mon Sep 17 00:00:00 2001 From: Charlie Moog Date: Wed, 24 Mar 2021 19:17:03 -0500 Subject: [PATCH] os: implement fs.StatFS for os.DirFS Change-Id: I1d7382bf522aeda7148431b348f6ab9a162be097 Reviewed-on: https://go-review.googlesource.com/c/go/+/304531 Run-TryBot: Ian Lance Taylor TryBot-Result: Go Bot Reviewed-by: Ian Lance Taylor Trust: Robert Griesemer --- src/os/file.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/os/file.go b/src/os/file.go index ebeb0d0ac9..e717f171e7 100644 --- a/src/os/file.go +++ b/src/os/file.go @@ -651,6 +651,17 @@ func (dir dirFS) Open(name string) (fs.File, error) { return f, nil } +func (dir dirFS) Stat(name string) (fs.FileInfo, error) { + if !fs.ValidPath(name) || runtime.GOOS == "windows" && containsAny(name, `\:`) { + return nil, &PathError{Op: "stat", Path: name, Err: ErrInvalid} + } + f, err := Stat(string(dir) + "/" + name) + if err != nil { + return nil, err + } + return f, nil +} + // ReadFile reads the named file and returns the contents. // A successful call returns err == nil, not err == EOF. // Because ReadFile reads the whole file, it does not treat an EOF from Read -- 2.50.0