darwin.go 533 B

1234567891011121314151617181920212223242526272829
  1. //go:build darwin
  2. package get_access_time
  3. import (
  4. "os"
  5. "syscall"
  6. "time"
  7. )
  8. type OneGetAccessTime struct {
  9. }
  10. func (d OneGetAccessTime) GetOSName() string {
  11. return "darwin"
  12. }
  13. func (d OneGetAccessTime) GetAccessTime(fileName string) (time.Time, error) {
  14. // return now time and err if file does not exist
  15. // TODO: change time.Now()
  16. fi, err := os.Stat(fileName)
  17. if os.IsNotExist(err) {
  18. return time.Now(), err
  19. }
  20. aTime := fi.Sys().(*syscall.Stat_t).Atimespec
  21. return time.Unix(int64(aTime.Sec), int64(aTime.Nsec)), nil
  22. }