go语言的os模块
- os包有3个子包,分别是:exec,负责执行外部命令;signal,对输入信息的访问;user,通过名称或ID查询用户账户;
- os包下的File结构体既可以表示文件,也可以表示目录;
package main
import (
"fmt"
"os"
"os/user"
)
func main() {
u, err := user.Current()
fmt.Println("错误信息err: ", err)
fmt.Println("用户ID:Uid: ", u.Uid)
fmt.Println("用户名:Username: ", u.Username)
fmt.Println("用户组ID:Gid: ", u.Gid)
fmt.Println("用户组名称:Name: ", u.Name)
fmt.Println("用户家目录:HomeDir: ", u.HomeDir)
errMsg := os.Mkdir("./TEST", os.ModeDir)
if errMsg != nil {
fmt.Println("创建目录失败", errMsg)
return
} else {
fmt.Println("创建目录成功")
}
errMsg2 := os.MkdirAll("./A/B", os.ModeDir)
if errMsg2 != nil {
fmt.Println("创建目录失败", errMsg2)
return
} else {
fmt.Println("创建目录成功")
}
f, errMsg3 := os.Create("test.txt")
if errMsg3 != nil {
fmt.Println("文件创建失败", errMsg3)
return
} else {
fmt.Println(f.Name(), "文件创建成功")
}
errMsg4 := os.Rename("test.txt", "ttt.txt")
if errMsg4 != nil {
fmt.Println("文件重命名失败", errMsg4)
return
} else {
fmt.Println("文件重命名成功")
}
f2, errMsg5 := os.Open("ttt.txt")
if errMsg5 != nil {
fmt.Println("文件打开失败", errMsg5)
return
}
fmt.Println("文件打开成功, 内容如下: ")
fileInfo, errMsg6 := f2.Stat()
if errMsg6 != nil {
fmt.Println("文件打开失败", errMsg6)
return
}
fmt.Println("文件打开成功", fileInfo)
fmt.Println("文件大小是:", fileInfo.Size())
errMsg7 := os.Remove("ttt.txt")
if errMsg7 != nil {
fmt.Println("文件删除失败", errMsg7)
return
}
fmt.Println("删除成功")
}