Golang下的目录和文件的基本操作

时间:2019-06-17作者:klpeng分类:IT综合浏览:3639评论:0

目录、文件的创建、删除、存在与否

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("创建文件成功!")
	}
}

 

 

 

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢