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)
介紹一個我用 go 寫的日誌管理包,地址: https://github.com/phachon/go-logger