目录、文件的创建、删除、存在与否
package main
import (
"fmt"
"os"
)
//判断文件或者文件夹是否存在,一般判断第一个参数即可,第二个参数可以忽略,或者严谨一些,把err日志记录起来
func FileExists(file string) (bool, error) {
_, err := os.Stat(file)
if err == nil {
return true, nil //文件或者文件夹存在
}
if os.IsNotExist(err) {
return false, nil //不存在
}
return false, err //不存在,这里的err可以查到具体的错误信息
}
//判断目录是否存在
func isDir(dir string) bool {
info, err := os.Stat(dir)
if err == nil {
return false
}
return info.IsDir()
}
//判断文件是否存在
func isFile(file string) bool {
info, err := os.Stat(file)
if err != nil {
return false
}
return !info.IsDir()
}
func main() {
//文件夹 目录操作
var err error
var path string
//获取当前工作目录的根路径
path, err = os.Getwd()
if err != nil {
panic(err)
}
fmt.Println(path)
//Mkdir 创建一层目录,如果目录已经存在,再次创建就会报错,所以建议采用此函数时,先检查目录是否存在
err = os.Mkdir("F:/go_project/test/1", 0666)
if err != nil {
panic(err)
}
//MkdirAll 创建多层级目录
err = os.MkdirAll("F:/go_project/test/12", 0666)
if err != nil {
panic(err)
}
//Remove 删除一个为空的文件夹,如果文件不存在,删除就会报错,建议删除目录时,先检测文件是否存在
//或者删除一个文件
err = os.Remove("F:/go_project/test/1")
if err != nil {
panic(err)
}
// RemoveAll 删除文件夹或者文件,哪怕不存在,文件夹不为空,都可以删除
err = os.RemoveAll("F:/go_project/test/12")
if err != nil {
panic(err)
}
//创建文件,如果文件存在,就清空文件内容
_, err = os.Create("test.php")
if err == nil {
fmt.Println("创建文件成功!")
}
}