日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

golang获取文件创建时间,最后访问时间,最后修改时间

發布時間:2024/2/28 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 golang获取文件创建时间,最后访问时间,最后修改时间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡言

1. golang為我們提供了完善的文件操作庫,例如os,ioutil等

2. windows下,linux下獲取文件時間信息的方式不太一樣,具體方式請看下面的代碼

3. 如果你還不知道如何獲取目錄下的所有文件,請參考筆者的這篇博客:https://blog.csdn.net/yzf279533105/article/details/115356551

效果如下

這個是文件目錄圖? ? ? ? ? ? ? ? ? ? 文件的時間信息如下圖

?? ?

完整代碼如下

package main import ("fmt""io/ioutil""os""syscall""time" ) // 遞歸獲取指定目錄下的所有文件名 func GetAllFile(pathname string) ([]string, error) {result := []string{}fis, err := ioutil.ReadDir(pathname)if err != nil {fmt.Printf("讀取文件目錄失敗,pathname=%v, err=%v \n",pathname, err)return result, err}// 所有文件/文件夾for _, fi := range fis {fullname := pathname + "/" + fi.Name()// 是文件夾則遞歸進入獲取;是文件,則壓入數組if fi.IsDir() {temp, err := GetAllFile(fullname)if err != nil {fmt.Printf("讀取文件目錄失敗,fullname=%v, err=%v",fullname, err)return result, err}result = append(result, temp...)} else {result = append(result, fullname)}}return result, nil }// 把秒級的時間戳轉為time格式 func SecondToTime(sec int64) time.Time {return time.Unix(sec, 0) }func main() {// 遞歸獲取目錄下的所有文件var files []stringfiles, _ = GetAllFile("E:/test/go/get_all_files")fmt.Println("目錄下的所有文件如下")for i:=0;i<len(files);i++ {fmt.Println("文件名:",files[i])// 獲取文件原來的訪問時間,修改時間finfo, _ := os.Stat(files[i])// linux環境下代碼如下//linuxFileAttr := finfo.Sys().(*syscall.Stat_t)//fmt.Println("文件創建時間", SecondToTime(linuxFileAttr.Ctim.Sec))//fmt.Println("最后訪問時間", SecondToTime(linuxFileAttr.Atim.Sec))//fmt.Println("最后修改時間", SecondToTime(linuxFileAttr.Mtim.Sec))// windows下代碼如下winFileAttr := finfo.Sys().(*syscall.Win32FileAttributeData)fmt.Println("文件創建時間:",SecondToTime(winFileAttr.CreationTime.Nanoseconds()/1e9))fmt.Println("最后訪問時間:",SecondToTime(winFileAttr.LastAccessTime.Nanoseconds()/1e9))fmt.Println("最后修改時間:",SecondToTime(winFileAttr.LastWriteTime.Nanoseconds()/1e9))} }

?

總結

以上是生活随笔為你收集整理的golang获取文件创建时间,最后访问时间,最后修改时间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。