問題描述
首先,好久沒發博客了…
然後介紹一下os.stat(文件路徑)這個方法
這個方法可以獲取文件的描述,描述信息如下:
/*
FileInfo:文件信息
interface
Name(),文件名
Size(),文件大小,字節爲單位
IsDir(),是否是目錄
ModTime(),修改時間
Mode(),權限
*/
然後呢,os.stat()的使用也很簡單,它可以返回上訴的FileInfo
但是呢,智障博主在不同的包下定義了這個方法,發現傳入相同的文件名,有的包可以使用有的包不可以使用,博主蒙B了,遂記錄
項目結構如下
代碼
fileInfo.go
package fileOps
import (
"fmt"
"os"
)
/*
FileInfo:文件信息
interface
Name(),文件名
Size(),文件大小,字節爲單位
IsDir(),是否是目錄
ModTime(),修改時間
Mode(),權限
*/
// 定義一個查看文件的的函數
func GetFileInfo(fileName string) {
fileInfo,err := os.Stat(fileName)
if err != nil{
fmt.Println("err :",err)
return
}
fmt.Printf("%T\n",fileInfo)
//文件名
fmt.Println(fileInfo.Name())
//文件大小
fmt.Println(fileInfo.Size())
//是否是目錄
fmt.Println(fileInfo.IsDir()) //IsDirectory
//修改時間
fmt.Println(fileInfo.ModTime())
//權限
fmt.Println(fileInfo.Mode()) //-rw-r--r--
}
然後在main裏面進行調用
package main
import (
fileOps "byteDancer.com/wcp-step-2/testPaacket/文件操作"
"fmt"
_ "github.com/go-sql-driver/mysql"
"os"
)
func main() {
// 我的天...以當前調用的路徑作爲路徑
fileOps.GetFileInfo("aa.txt")
// 報錯...
// fileOps.GetFileInfo("../aa.txt")
fileOps.GetFileInfo("./文件操作/bb.txt")
}
問題重點
注意
這裏通過main調用,但是方式聲明在其他目錄下,我們傳入的路徑要以main爲住,而不是聲明方法的目錄爲主
也就是說我們只關心當下,而不用關心哪裏定義的方法
// 我的天…以當前調用的路徑作爲路徑
fileOps.GetFileInfo("aa.txt")
// 報錯...
// fileOps.GetFileInfo("../aa.txt")
這是基於main文件下進行調用的
結果
實驗結果如下: