gpt4 book ai didi

go - 在 Go 中获取文件夹的更改日期

转载 作者:IT王子 更新时间:2023-10-29 01:34:31 24 4
gpt4 key购买 nike

我想获取文件夹重命名的日期,可以从终端使用 stat 命令完成,例如:

> stat -x folders/folder1
File: "folders/folder1"
Size: 64 FileType: Directory
Mode: (0755/drwxr-xr-x) Uid: (2006390509/username) Gid:
(296108113/EMEA\Domain Users)
Device: 1,4 Inode: 2599274 Links: 2
Access: Mon Nov 12 17:59:57 2018
Modify: Mon Nov 12 14:12:20 2018
Change: Mon Nov 12 17:28:01 2018

更改日期是文件夹元数据更改的最后日期,包括重命名。

有没有办法在不使用 os.exec 和解析输出的情况下使用 Go 获取它? os.Stat 似乎只提供最后一次修改日期,该日期在重命名文件夹时不会改变。

最佳答案

更改时间无法在 os.FileInfo 中访问,但可以通过存储该数据的 os.FileInfo.Sys() 获取。

你可以通过

package main

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

func main() {
f, err := os.Stat("your/dir")
if err != nil {
log.Fatalf("err reading: %v", err)
}

//access change time saved in os.FileInfo.Sys()
changeTime := f.Sys().(*syscall.Stat_t).Ctim

fmt.Print(time.Unix(changeTime.Unix()).String())
}

当然你需要检查 f.Sys() 是否是正确的类型,但是 syscall.Stat_t.Ctim 可能是你想要的。

关于go - 在 Go 中获取文件夹的更改日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53266940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com