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

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

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

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值