Golang
获取文件信息的方法相对来说容易一些,都已经有了对应的package
,我这里只是把怎么用展示出来。
//timespecToTime 转换
func timespecToTime(ts syscall.Timespec) time.Time {
return time.Unix(int64(ts.Sec), int64(ts.Nsec))
}
//GetFileinfo 获取文件信息
func GetFileinfo(path string) {
fileInfo, err := os.Stat(path)
if err != nil {
return 0
}
//文件大小
filesize := fileInfo.Size()
//文件创建时间
stat_ts := fileInfo.Sys().(*syscall.Stat_t)
Ctime := timespecToTime(stat_ts.Ctim).Format("2006/01/02")
//文件修改时间
Mtime := timespecToTime(stat_ts.Mtim).Format("2006/01/02")
//文件访问时间
Attim := timespecToTime(stat_ts.Atim).Format("2006/01/02")
//获取文件所有者
stat_ts := fileInfo.Sys().(*syscall.Stat_t)
uid := strconv.Itoa(int(stat_ts.Uid))
usrs, err := user.LookupId(string(uid))
username := usrs.Username
//获取文件名
filename := fileInfo.Name()
}