1. 程式人生 > >Go 獲取檔案基本資訊方法

Go 獲取檔案基本資訊方法

Go 獲取檔案資訊方法

  • go
  • file

最近一直在寫 go 語言,總結下go獲取檔案資訊的方法

1.檔案修改時間

fileInfo, _ := os.Stat("test.log")
//修改時間
modTime := fileInfo.ModTime()
fmt.Println(modTime)

2.檔案是否存在

_, err := os.Stat("test.log")
if(os.IsNotExist(err)) {
    fmt.Println("file not exist!")
}

3.檔案是否是目錄

fileInfo, _ := os.Stat("test.log"
) //是否是目錄 isDir := fileInfo.IsDir() fmt.Println(isDir)

4.檔案許可權

fileInfo, _ := os.Stat("test.log")
//許可權
mode := fileInfo.Mode()
fmt.Println(mode)

5.檔名

fileInfo, _ := os.Stat("test.log")
//檔名
filename:= fileInfo.Name()
fmt.Println(filename)

6.檔案大小

fileInfo, _ := os.Stat("test.log")
//檔案大小
filesize:
= fileInfo.Size() fmt.Println(filesize)//返回的是位元組

7.檔案建立時間

檔案的建立時間並沒有直接的方法返回,翻看原始碼才知道如何獲取

fileInfo, _ := os.Stat("test.log")
fileSys := fileInfo.Sys().(*syscall.Win32FileAttributeData)
nanoseconds := fileSys.CreationTime.Nanoseconds() // 返回的是納秒
createTime := nanoseconds/1e9 //秒
fmt.Println(createTime)

8.檔案最後寫入時間

fileInfo, _ := os.Stat("test.log")
fileSys := fileInfo.Sys().(*syscall.Win32FileAttributeData)
nanoseconds := fileSys.LastWriteTime.Nanoseconds() // 返回的是納秒
lastWriteTime := nanoseconds/1e9 //秒
fmt.Println(lastWriteTime)

9.檔案最後訪問時間

fileInfo, _ := os.Stat("test.log")
fileSys := fileInfo.Sys().(*syscall.Win32FileAttributeData)
nanoseconds := fileSys.LastAccessTime.Nanoseconds() // 返回的是納秒
lastAccessTime:= nanoseconds/1e9 //秒
fmt.Println(lastAccessTime)

10.檔案屬性

fileInfo, _ := os.Stat("test.log")
fileSys := fileInfo.Sys().(*syscall.Win32FileAttributeData)
fileAttributes:= fileSys.FileAttributes
fmt.Println(fileAttributes)