3 回答
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
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))
}
}
- 3 回答
- 0 关注
- 441 浏览
添加回答
举报