在 Linux 下,可以使用 Golang 的 os 包中的 Stat 函数获取文件的 Change Time、Access Time、Modify Time 和 Birth Time。具体方法如下:

package main

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

func main() {
    fi, err := os.Stat("file.txt")
    if err != nil {
        fmt.Println(err)
        return
    }

    stat := fi.Sys().(*syscall.Stat_t)

    fmt.Println("Change Time:", time.Unix(int64(stat.Ctim.Sec), int64(stat.Ctim.Nsec)))
    fmt.Println("Access Time:", time.Unix(int64(stat.Atim.Sec), int64(stat.Atim.Nsec)))
    fmt.Println("Modify Time:", time.Unix(int64(stat.Mtim.Sec), int64(stat.Mtim.Nsec)))
    fmt.Println("Birth Time:", time.Unix(int64(stat.Ctim.Sec), int64(stat.Ctim.Nsec)))
}

这里使用了 os 包中的 Stat 函数获取文件信息,并通过类型断言获取了 syscall 包中的 Stat_t 结构体,它包含了文件的各种状态信息。最后,使用 time 包中的 Unix 函数将秒数和纳秒数转换为时间格式,输出到控制台。

注意,Birth Time 并不是所有文件系统都支持的,如果文件系统不支持 Birth Time,则无法获取到该值。


原文地址: https://www.cveoy.top/t/topic/mlIk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录