github.com/pbberlin/tools@v0.0.0-20160910141205-7aa5421c2169/os/fsi/dsfs/41_file_impl_fileinfo.go (about) 1 package dsfs 2 3 import ( 4 "os" 5 "time" 6 ) 7 8 // golang.org/pkg/os 9 type FileInfo interface { 10 Name() string // base name of the file 11 Size() int64 // length in bytes for regular files; system-dependent for others 12 Mode() os.FileMode // file mode bits 13 ModTime() time.Time // modification time 14 IsDir() bool // abbreviation for Mode().IsDir() 15 Sys() interface{} // underlying data source (can return nil) 16 } 17 18 // All of them: NO pointer receiver 19 20 func (d DsDir) Name() string { 21 return d.BName 22 } 23 func (f DsFile) Name() string { 24 return f.BName 25 } 26 27 func (d DsDir) Size() int64 { 28 return int64(len(d.BName)) 29 } 30 func (f DsFile) Size() int64 { 31 return int64(len(f.Data)) 32 } 33 34 // no rights implemented 35 func (d DsDir) Mode() os.FileMode { 36 return os.ModePerm 37 } 38 func (f DsFile) Mode() os.FileMode { 39 return f.MMode 40 } 41 42 func (d DsDir) ModTime() time.Time { 43 return d.MModTime 44 } 45 func (f DsFile) ModTime() time.Time { 46 return f.MModTime 47 } 48 49 func (d DsDir) IsDir() bool { 50 return true 51 } 52 func (f DsFile) IsDir() bool { 53 return false 54 } 55 func (d DsDir) Sys() interface{} { 56 return nil 57 } 58 func (f DsFile) Sys() interface{} { 59 return nil 60 }