...

Source file src/io/fs/stat.go

Documentation: io/fs

		 1  // Copyright 2020 The Go Authors. All rights reserved.
		 2  // Use of this source code is governed by a BSD-style
		 3  // license that can be found in the LICENSE file.
		 4  
		 5  package fs
		 6  
		 7  // A StatFS is a file system with a Stat method.
		 8  type StatFS interface {
		 9  	FS
		10  
		11  	// Stat returns a FileInfo describing the file.
		12  	// If there is an error, it should be of type *PathError.
		13  	Stat(name string) (FileInfo, error)
		14  }
		15  
		16  // Stat returns a FileInfo describing the named file from the file system.
		17  //
		18  // If fs implements StatFS, Stat calls fs.Stat.
		19  // Otherwise, Stat opens the file to stat it.
		20  func Stat(fsys FS, name string) (FileInfo, error) {
		21  	if fsys, ok := fsys.(StatFS); ok {
		22  		return fsys.Stat(name)
		23  	}
		24  
		25  	file, err := fsys.Open(name)
		26  	if err != nil {
		27  		return nil, err
		28  	}
		29  	defer file.Close()
		30  	return file.Stat()
		31  }
		32  

View as plain text