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  }