| package fs |
| |
| import ( |
| "io/ioutil" |
| "os" |
| "path/filepath" |
| ) |
| |
| // FileSystem defines the methods of an abstract filesystem. |
| type FileSystem interface { |
| |
| // ReadDir reads the directory named by dirname and returns a |
| // list of directory entries. |
| ReadDir(dirname string) ([]os.FileInfo, error) |
| |
| // Lstat returns a FileInfo describing the named file. If the file is a |
| // symbolic link, the returned FileInfo describes the symbolic link. Lstat |
| // makes no attempt to follow the link. |
| Lstat(name string) (os.FileInfo, error) |
| |
| // Join joins any number of path elements into a single path, adding a |
| // separator if necessary. The result is Cleaned; in particular, all |
| // empty strings are ignored. |
| // |
| // The separator is FileSystem specific. |
| Join(elem ...string) string |
| } |
| |
| // fs represents a FileSystem provided by the os package. |
| type fs struct{} |
| |
| func (f *fs) ReadDir(dirname string) ([]os.FileInfo, error) { return ioutil.ReadDir(dirname) } |
| |
| func (f *fs) Lstat(name string) (os.FileInfo, error) { return os.Lstat(name) } |
| |
| func (f *fs) Join(elem ...string) string { return filepath.Join(elem...) } |