golang_获取文件属性: os包中os.Stat的用法介绍

  • Post author:
  • Post category:golang

获取文件属性

os.Args

os.Args是一个字符串slice
os.Args的第一个元素是os.Args[0],是命令本身的名字.

一般都是从os.Args[1]开始读取数据

os.Stat

func (f *File) Stat() (fi FileInfo, err error)

Stat返回描述文件f的FileInfo类型值。如果出错,错误底层类型是*PathError。

os.Stat用来获取文件属性

type FileInfo

type FileInfo interface {
    Name() string       // 文件的名字(不含扩展名)
    Size() int64        // 普通文件返回值表示其大小;其他文件的返回值含义各系统不同
    Mode() FileMode     // 文件的模式位
    ModTime() time.Time // 文件的修改时间
    IsDir() bool        // 等价于Mode().IsDir()
    Sys() interface{}   // 底层数据来源(可以返回nil)
}

FileInfo用来描述一个文件对象。

场景: 获取文件属性

func main() {
	list := os.Args
	if len(list) == 1 {
		fmt.Println("无内容")
		return
	}
	fileName := list[1]

	info, err := os.Stat(fileName)//Stat获取文件属性
	if err != nil {
		fmt.Println("os.Stat err =",err)
		return
	}

	fmt.Println("name =",info.Name())
	fmt.Println("size =",info.Size())
	fmt.Println("mode =",info.Mode())
	fmt.Println("modtime =",info.ModTime())
	fmt.Println("isDir =",info.IsDir())
	fmt.Println("sys =",info.Sys())
}

Output:

终端执行命令: go run demo.go e:\face.jpg

name = face.jpg
size = 178154
mode = -rw-rw-rw-
modtime = 2019-02-20 21:02:58.0055166 +0800 CST
isDir = false
sys = &{32 {1739327783 30722332} {2624535810 30722332} {2583200894 30722332} 0 178154}

ps:Size()是按Byte字节进行计算大小.


版权声明:本文为weixin_43851310原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。