(三)、Golang标准库
1.标准库os模块之文件目录
(1).查看源码的两种方式
查看源码: https://pkg.go.dev/std
(2).操纵OS创建文件
GO语言操纵操作系统-> 创建一个可执行文件。如果多次执行同一个文件名,会产生覆盖不会报错误信息
create, err := os.Create("test.txt") //返回值: 第一个是文件对象,第二个是错误日志
package main import ( "fmt" "os" ) /* 利用GO语言进行操作 -> 操作系统 */ func createFile() { create, err := os.Create("test.txt") //返回值: 第一个是文件对象,第二个是错误日志 if err != nil { println(err) } else { fmt.Printf("恭喜您文件创建成功,文件名是:%v", create.Name()) } } func main() { createFile() //如果多次调用,会直接覆盖 }
(3).操纵OS创建文件目录
- 第一种创建单极目录
package main import ( "fmt" "os" ) /* 利用GO语言进行操作 -> 操作系统 */ func makeDir() { err := os.Mkdir("test", os.ModePerm) //第一个参数是目录名,第二个参数是目录权限 if err != nil { println(err) } else { fmt.Printf("恭喜您创建成功!") } } func main() { makeDir() }
- 第二种创建联机目录
package main import ( "fmt" "os" ) /* 利用GO语言进行操作 -> 操作系统 */ func makeDirAll() { err := os.MkdirAll("test/b/c/d", os.ModePerm) if err != nil { println(err) } else { fmt.Printf("恭喜您创建成功!") } } func main() { //createFile() //如果多次调用,会直接覆盖 makeDirAll() }
(4).操纵OS删除文件
- 删除文件信息
package main import ( "fmt" "os" ) /* 利用GO语言进行操作 -> 操作系统 */ func remove() { err := os.Remove("test.txt") if err != nil { println(err) } else { fmt.Printf("删除成功!") } } func main() { remove() }
- 联机删除文件目录
package main import ( "fmt" "os" ) /* 利用GO语言进行操作 -> 操作系统 */ func remove() { err := os.RemoveAll("test") //会联机删除文件类似于 : rm -rf /* if err != nil { fmt.Printf("%v", err) } else { fmt.Printf("删除成功!") } } func main() { remove() }
(5)操纵OS 获取目录地址/修改目录地址/修改目录名
package main import ( "fmt" "os" ) /* 利用GO语言进行操作 -> 操作系统 */ func wd() { getwd, err := os.Getwd() // 获取当前的工作路径 if err != nil { fmt.Printf("%v\n", err) } else { fmt.Printf("当前目录是: %v", getwd) } os.Chdir("d:/") //把工作目录修改到我们设定的目录 os.Rename("test.txt","test2.txt") // 把test目录名修改成test2.txt } func main() { wd() }
(6).操纵OS从某一个文件中读或者写
- 文件的读取
文件读取的时候是byte字节,我们需要将其转换成string
package main import ( "fmt" "os" ) /* 利用GO语言进行操作 -> 操作系统 */ func read() { file, err := os.ReadFile("test.txt") // 返回的是文件信息和错误信息 if err != nil { fmt.Printf("%v", err) } else { fmt.Printf("读取的文件信息是: %v", string(file[:])) // 读取的是一个个字节,我们需要将其转换成字符串 } } func main() { read() }
- 写的操作
字节数组传入的操作....
package main import ( "os" ) /* 利用GO语言进行操作 -> 操作系统 */ func write() { s := "你好,全名制作人" os.WriteFile("test.txt", []byte(s), os.ModePerm) // 第一个参数是写哪里,第二个参数是内容(需要转换为byte),第三个是权限设置 } func main() { write() }