Skip to main content

判断文件是否过时

· One min read

有时候我们需要定期的更新配置文件,如此处的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