Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Golang按日期和时间查找最新的文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我不确定我是否正确执行此操作,但最终我想在目录中找到文件的最新修改日期并返文件名.我到目前为止的代码如下.有人可以帮助我提供比这更有效的解决方案.我真的有一种感觉,这是超级hacky.我正在做的是获取日期并删除

package main

import (
    "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 main

import (
    "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按日期和时间查找最新的文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。