Scott

判断文件是否过时 2 years ago

go
755个字符
共有88人围观

有时候我们需要定期的更新配置文件,如此处的getfolders.go需要去3个服务器爬取对应的信息,而每天目录都在变,如果你不更新,就会出现搜不到单的情况

//判断文件是否过时
//pth: 文件目录
//hour: 距现在多少小时算过时
func IsFileOutOfDate(pth string, hour int) bool {
  tm1, err := getFileModTime(pth)
  if err != nil {
    return true
  }

  tm2 := time.Now().Unix() //unix定义返回的是s

  if tm2-tm1 > int64(hour*3600) {
    return true
  } else {
    return false
  }
}

//获取文件修改时间 返回unix时间戳
func getFileModTime(pth string) (int64, error) {
  f, err := os.Open(pth)
  if err != nil {
    return time.Now().Unix(), err
  }
  defer f.Close()

  fi, err := f.Stat()
  if err != nil {
    return time.Now().Unix(), err
  }

  return fi.ModTime().Unix(), nil
}

相关定义src/io/fs/fs.go

参考:https://github.com/scott-x/gutils/blob/master/fs/time.go