为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Go中获取文件的最后访问日期和时间?

如何在Go中获取文件的最后访问日期和时间?

Go
慕的地10843 2021-05-04 12:08:24
有谁知道如何检查文件访问日期和时间?该函数返回修改后的日期和时间,我需要将访问的日期时间与当前日期和时间进行比较的内容。
查看完整描述

3 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

您可以使用os.Stat来获取FileInfo结构,该结构还包含上次访问时间(以及上次修改时间和上次状态更改时间)。


info, err := os.Stat("example.txt")

if err != nil {

     // TODO: handle errors (e.g. file not found)

}

// info.Atime_ns now contains the last access time

// (in nanoseconds since the unix epoch)

之后,您可以使用time.Nanoseconds来获取当前时间(自unix纪元,1970年1月1日00:00:00 UTC以来,也以纳秒为单位)。要获得以纳秒为单位的持续时间,只需减去这两个值:


duration := time.Nanoseconds() - info.Atime_ns


查看完整回答
反对 回复 2021-05-10
?
不负相思意

TA贡献1777条经验 获得超10个赞

通过强制转换os.FileInfo为*syscall.Stat_t:


package main


import ( "fmt"; "log"; "os"; "syscall"; "time" )


func main() {

    for _, arg := range os.Args[1:] {

        fileinfo, err := os.Stat(arg)

        if err != nil {

            log.Fatal(err)

        }

        atime := fileinfo.Sys().(*syscall.Stat_t).Atim

        fmt.Println(time.Unix(atime.Sec, atime.Nsec))

    }

}


查看完整回答
反对 回复 2021-05-10
  • 3 回答
  • 0 关注
  • 441 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信