Go 标准库介绍三: os
发布时间:2020-12-16 19:13:20 所属栏目:大数据 来源:网络整理
导读:原文链接 http://ironxu.com/751 介绍Go 标准库 os 常用导出函数,结构体及其方法。 import os os 包提供了不依赖平台的操作系统函数接口。错误处理设计为go 风格,失败的调用会返回错误值而非错误码。通常错误值里包含更多信息。 1. os 常用导出函数 func H
原文链接 http://ironxu.com/751 介绍Go 标准库 os 常用导出函数,结构体及其方法。 import os os 包提供了不依赖平台的操作系统函数接口。错误处理设计为go 风格,失败的调用会返回错误值而非错误码。通常错误值里包含更多信息。 1. os 常用导出函数
// go 标准库 os package main import ( "fmt" "os" ) func main() { // 预定义变量,保存命令行参数 fmt.Println(os.Args) // 获取host name fmt.Println(os.Hostname()) fmt.Println(os.Getpid()) // 获取全部环境变量 env := os.Environ() for k,v := range env { fmt.Println(k,v) } // 终止程序 // os.Exit(1) // 获取一条环境变量 fmt.Println(os.Getenv("PATH")) // 获取当前目录 dir,err := os.Getwd() fmt.Println(dir,err) // 创建目录 err = os.Mkdir(dir+"/new_file",0755) fmt.Println(err) // 创建目录 err = os.MkdirAll(dir+"/new",0755) fmt.Println(err) // 删除目录 err = os.Remove(dir + "/new_file") err = os.Remove(dir + "/new") fmt.Println(err) // 创建临时目录 tmp_dir := os.TempDir() fmt.Println(tmp_dir) } 2. File 结构体
// go 标准库 os.File package main import ( "fmt" "os" "time" ) func main() { // 获取当前目录 dir,err) file := dir + "/new" var fh *os.File fi,_ := os.Stat(file) if fi == nil { fh,_ = os.Create(file) // 文件不存在就创建 } else { fh,_ = os.OpenFile(file,os.O_RDWR,0666) // 文件存在就打开 } w := []byte("hello go language" + time.Now().String()) n,err := fh.Write(w) fmt.Println(n,err) // 设置下次读写位置 ret,err := fh.Seek(0,0) fmt.Println("当前文件指针位置",ret,err) b := make([]byte,128) n,err = fh.Read(b) fmt.Println(n,err,string(b)) fh.Close() } 3. FileInfo 结构体FileInfo用来描述一个文件对象 结构体定义: type FileInfo interface { Name() string // base name of the file Size() int64 // length in bytes for regular files; system-dependent for others Mode() FileMode // file mode bits ModTime() time.Time // modification time IsDir() bool // abbreviation for Mode().IsDir() Sys() interface{} // underlying data source (can return nil) }
使用示例: fi,_ := os.Stat(file) if fi == nil { fh,_ = os.Create(file) // 文件不存在就创建 } else { fh,0666) // 文件存在就打开 } 参考
可以关注我的微博了解更多信息: @刚刚小码农 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |