2 回答

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊
更改時(shí)間不可訪問(wèn),但可以通過(guò)存儲(chǔ)該數(shù)據(jù)的方式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())
}
當(dāng)然你需要檢查f.Sys()它是否是正確的類型,但是 yeahsyscall.Stat_t.Ctim可能是你想要的。

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果您對(duì)調(diào)用 os.Exec 感到滿意,也許您不介意跨平臺(tái)問(wèn)題。
無(wú)論如何,這段代碼對(duì)我來(lái)說(shuō)都是有效的。不確定它如何/是否可以在 Windows 上運(yùn)行:
file, err := os.Open("test")
if err != nil {
? ? panic(err)
}
stat, err := file.Stat()
sys := stat.Sys().(*syscall.Stat_t)
changedTime := time.Unix(sys.Ctim.Unix())
fmt.Println(stat.ModTime())
fmt.Println(changedTime)
當(dāng)我跑步時(shí)
mv test test1 && mv test1 test && go run main.go
它給了我:
2018-11-12 17:31:38.659095951 +0000 GMT
2018-11-12 17:57:43.042208583 +0000 GMT
這似乎正確地反映了我更改目錄名的時(shí)間,而不是創(chuàng)建時(shí)間(如第一個(gè)日期)
- 2 回答
- 0 關(guān)注
- 295 瀏覽
添加回答
舉報(bào)