golang获取文件创建时间,最后访问时间,最后修改时间
生活随笔
收集整理的這篇文章主要介紹了
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获取文件创建时间,最后访问时间,最后修改时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: golang递归获取目录下的所有文件
- 下一篇: golang修改文件的最后访问时间,最后