package mainimport ( "fmt" "io/IoUtil" "os" "strconv" "strings")func main() { dir := "C:\temp\" files,_ := IoUtil.ReadDir(dir) for _,f := range files { fi,_ := os.Stat(dir + f.name()) s := strings.Split(fi.ModTime().Format("2006-01-02 15.04.05.000")," ") fdate,err := strconv.Atoi(strings.Replace(s[0],"-","",-1)) if err != nil { fmt.Println(err) } ftime,err := strconv.Atoi(strings.Replace(s[1],".",-1)) if err != nil { fmt.Println(err) } fmt.Println(fi.name(),fdate+ftime) }}解决方法 注重细节和效率.检查错误.您询问了文件,因此请跳过目录和其他内容.允许具有相同修改时间戳的多个文件(例如,windows文件时间的分辨率最多为100纳秒).你已经有ModTime()所以不要调用os.Stat().直接使用time.Time方法.等等.
例如,
package mainimport ( "fmt" "io/IoUtil" "os" "time")func main() { dir := `C:\temp\` // windows directory files,err := IoUtil.ReadDir(dir) if err != nil { fmt.Fprintln(os.Stderr,err) os.Exit(1) } var modTime time.Time var names []string for _,fi := range files { if fi.Mode().IsRegular() { if !fi.ModTime().Before(modTime) { if fi.ModTime().After(modTime) { modTime = fi.ModTime() names = names[:0] } names = append(names,fi.name()) } } } if len(names) > 0 { fmt.Println(modTime,names) }}总结
以上是内存溢出为你收集整理的Golang按日期和时间查找最新的文件全部内容,希望文章能够帮你解决Golang按日期和时间查找最新的文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)