7.Go-用户信息和系统文件/目录
程序员文章站
2022-06-24 13:58:17
7.1.获取操作系统用户信息 (1)os包及子包功能 os/exec包,负责执行外部命令 os/singal对输入信息的访问 os/user通过名次或ID 查询用户账号 (2)在os/user中提供了User结构体,表示操作系统用户 Uid用户id Gid所属组id Username用户名 Name ......
7.1.获取操作系统用户信息
(1)os包及子包功能
- os/exec包,负责执行外部命令
- os/singal对输入信息的访问
- os/user通过名次或id 查询用户账号
(2)在os/user中提供了user结构体,表示操作系统用户
- uid用户id
- gid所属组id
- username用户名
- name所属组名
- homedir用户对应文件夹路劲
(3)在os/user中的group表示用户所属组
- gid组的id
- name组的名称
//learn_go/main.go
package main
import (
"fmt"
"os/user"
)
func main() {
u,error := user.current() //获取当前用户
if error != nil{
fmt.println(error)
return
}
fmt.println(u.uid)
fmt.println(u.name)
fmt.println(u.gid)
fmt.println(u.homedir)
fmt.println(u.username)
}
7.2.系统文件和目录
(1)go语言标准库中提供了两种创建文件夹的方式
mkdir:要求文件夹不存在且父目录必须存在,才能创建
//learn_go/main.go
package main
import (
"fmt"
"os"
)
func main() {
err := os.mkdir("d:/godir", os.modedir)
if err != nil{
fmt.println("文件夹创建失败", err)
return
}
fmt.println("文件夹创建成功")
}
mkdirall:如果文件夹已经存在,不报错,保留原文件,如果父目录不存在帮助创建
//learn_go/main.go
package main
import (
"fmt"
"os"
)
func main() {
err := os.mkdirall("d:/godir/a/b", os.modedir)
if err != nil{
fmt.println("文件夹创建失败", err)
return
}
fmt.println("文件夹创建成功")
}
(2)创建空文件
创建文件是要求文件目录必须已经存在
如果文件已经存在,则会创建一个空文件覆盖之前的文件
//learn_go/main.go
package main
import (
"fmt"
"os"
)
func main() {
f , err := os.create("d:/godir/test.txt")
if err != nil{
fmt.println("文件夹创建失败", err)
return
}
fmt.println("文件夹创建成功", f)
}
(3)重命名文件或文件夹
第一个参数:原文件名称,要求此路径是必须存在的
第二个参数:新文件夹名称
//learn_go/main.go
package main
import (
"fmt"
"os"
)
func main() {
err := os.rename("d:/godir","d:/godir11")
if err != nil{
fmt.println("重命名失败", err)
return
}
fmt.println("重命名成功")
}
重命名文件
//learn_go/main.go
package main
import (
"fmt"
"os"
)
func main() {
err := os.rename("d:/godir11/test.txt","d:/godir11/test11.txt")
if err != nil{
fmt.println("重命名失败", err)
return
}
fmt.println("重命名成功")
}
(4)获取文件夹信息
//learn_go/main.go
package main
import (
"fmt"
"os"
)
func main() {
f,err := os.open("d:/godir11/test11.txt")
if err != nil{
fmt.println("文件获取失败", err)
return
}
fileinfo,err := f.stat()
if err != nil{
fmt.println("文件信息获取失败",err)
return
}
fmt.println(fileinfo.size()) //文件大小
fmt.println(fileinfo.modtime()) //文件最后修改时间
fmt.println(fileinfo.mode()) //文件模式 -rw-rw-rw-
fmt.println(fileinfo.isdir()) //是否是目录 false
fmt.println(fileinfo.name()) //文件名 test11.txt
}
(5)删除文件或文件夹
remove:删除的内容只能是一个文件或空文件夹且必须存在
//learn_go/main.go
package main
import (
"fmt"
"os"
)
func main() {
err := os.remove("d:/godir11")
if err != nil{
fmt.println("删除失败", err)
return
}
fmt.println("删除成功")
}
//结果
删除失败 remove d:/godir11: the directory is not empty.
removeall
- 只要文件夹存在,删除文件夹
- 无论文件是否有内容都会删除
- 如果是文件则删除文件
//learn_go/main.go
package main
import (
"fmt"
"os"
)
func main() {
err := os.removeall("d:/godir11")
if err != nil{
fmt.println("删除失败", err)
return
}
fmt.println("删除成功")
}
//结果
删除成功
上一篇: coreldraw怎么使用格式刷?
推荐阅读
-
Linux chgrp命令详细介绍和使用实例(改变文件或目录的所属用户组)
-
在Linux系统上加密文件和目录的教程
-
Linux chgrp命令详细介绍和使用实例(改变文件或目录的所属用户组)
-
Linux操作系统中读取目录文件信息的过程分析
-
查找Linux系统中的大文件和大目录方法
-
node.js中fs文件系统目录操作与文件信息操作
-
Linux系统中管理用户和用户组的相关配置文件简介
-
CentOS中Yum源配置文件中$releasever和$basearch取值,获取系统版本、架构等信息
-
Win10系统修改主机名、用户名称和密码、以及C盘中的用户文件夹名
-
鸟哥linux学习之--文件属性和系统目录