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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

golang修改文件的最后访问时间,最后修改时间

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

簡言

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

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

3. 如果只修改文件的最后訪問時間,最后修改時間,可以使用os.Chtimes()函數

4. 如果還需要修改文件的創建時間,使用os.Chtimes()就不行了,請參考筆者的另外一篇博客:https://blog.csdn.net/yzf279533105/article/details/115396553

效果如下圖

這個是文件目錄圖? ? ? ? ? ? ? ? ? ? 執行效果如下圖(可以看到所有文件的最后訪問時間,最后修改時間都改成了當前時間)

? ?

完整代碼如下

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 PrintFileTime(pathname string) {// 獲取文件原來的訪問時間,修改時間finfo, _ := os.Stat(pathname)// 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)) }func main() {// 遞歸獲取目錄下的所有文件var files []stringfiles, _ = GetAllFile("E:/test/go/modify_file_time_2")fmt.Println("目錄下的所有文件如下")for i:=0;i<len(files);i++ {fmt.Println("文件名:",files[i])// 打印三個時間PrintFileTime(files[i])// 修改fmt.Println("修改文件的最后訪問時間,最后修改時間")os.Chtimes(files[i], time.Now(), time.Now())// 再次打印三個時間PrintFileTime(files[i])} }

?

總結

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

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