Go 获取文件基本信息方法

本文介绍了使用Go语言获取文件信息的各种方法,包括文件修改时间、存在性、是否为目录、权限、文件名、大小、创建时间、最后写入时间和访问时间,以及文件属性。并提及了一个Go编写的日志管理包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值