Go语言编程中判断文件是否存在是创建目录的方法_Golang

判断文件是否存在
os.IsExists()函数和os.IsNotExists(),他们的函数的原形是func IsExist(err error) bool func IsNotExist(err error) bool 都是传入一个err返回bool 这里注意了 err已经定义好了

复制代码 代码如下:

  /*
 var (
     ErrInvalid    = errors.New("invalid argument")
     ErrPermission = errors.New("permission denied")
     ErrExist      = errors.New("file already exists")
     ErrNotExist   = errors.New("file does not exist")
 )
*/

这里我们看到了errors这个包,那我们讲一下这个包,这个包就一个方法就是errors.New()函数原形是func New(text string) error实例代码

复制代码 代码如下:

import (
 "errors"
 "fmt"
)

func main() {
 //这里就一个方法func New(text string) error 我们可以自己定义
 err := errors.New("widuu blog only golang")
 if err != nil {
  fmt.Println(err) //这里就是输出了我们自己定义的错误信息 //widuu blog only golang
 }
}

下面通过实例代码讲解一下

复制代码 代码如下:

  import (
 "fmt"
 "os"
)

func main() {
 _, err := os.Open("widuu.go")
 if err != nil {
  fmt.Println(os.IsNotExist(err)) //true  证明文件已经存在
  fmt.Println(err)                //open widuu.go: no such file or directory
 }

 //这个时候你可以这样判断文件是否存在

 f, err := os.Open("widuu.go")
 if err != nil && os.IsNotExist(err) {
  fmt.Println(f, "文件不存在") //为什么打印nil 是这样的如果file不存在 返回f文件的指针是nil的 所以我们不能使用defer f.Close()会报错的
 }

//我们弄出一个文件已经存在的错误来实验os.IsExists() 如下是Os定义的常量
 /*
  var (
      ErrInvalid    = errors.New("invalid argument")
      ErrPermission = errors.New("permission denied")
      ErrExist      = errors.New("file already exists")
      ErrNotExist   = errors.New("file does not exist")
  )
 */
 fmt.Println(os.IsExist(os.ErrExist)) //这里就会输出true
 //我们后边马上提到link
 err = os.Link("osexists.go", "1.go")
 if err != nil {
  fmt.Println(os.IsExist(err))  //因为我1.go这个文件存在了 所以说返回true
 }
}

创建目录
os.Mkdir创建单个目录函数原形func Mkdir(name string, perm FileMode) error输入一个目录的名称和目录的权限,我们可以用默认的os.ModePerm然后返回的是一个error的信息,我们看下,也一块复习前边的一点知识

复制代码 代码如下:

 import (
 "fmt"
 "os"
)

func main() {
 var path string
 if os.IsPathSeparator('\\') {  //前边的判断是否是系统的分隔符
  path = "\\"
 } else {
  path = "/"
 }
 fmt.Println(path)
 dir, _ := os.Getwd()  //当前的目录
 err := os.Mkdir(dir+path+"md", os.ModePerm)  //在当前目录下生成md目录
 if err != nil {
  fmt.Println(err)
 }
 fmt.Println("创建目录" + dir + path + "md成功")
}

os.MkdirAll()函数原形是func MkdirAll(path string, perm FileMode) error输入的是多级目录结构和权限返回的是error的信息

复制代码 代码如下:

import (
 "fmt"
 "os"
)

func main() {
 dir, _ := os.Getwd()
 err := os.MkdirAll(dir+"/a/b/c", os.ModePerm)  //生成多级目录
 if err != nil {
  fmt.Println(err)
 }
 fmt.Println("创建文件夹" + dir + "/a/b/c成功")
}

时间: 2025-01-20 15:26:04

Go语言编程中判断文件是否存在是创建目录的方法_Golang的相关文章

Go语言编程中对文件读写的基本方法整理_Golang

1.func Copy(dst Writer, src Reader) (written int64, err error)这个函数是从一个文件读取拷贝到另外一个文件,一直拷贝到读取文件的EOF,所以不会返回io.EOF错误,参数是写入目标器和读取目标器,返回int64的拷贝字节数和err信息 复制代码 代码如下: import (  "fmt"  "io"  "os" ) func main() {  r, _ := os.Open("

源代码-关于C语言编程中R树索引的问题

问题描述 关于C语言编程中R树索引的问题 求教有没有大神知道R树索引如何建立.删除.插入等,急需一份源代码参考学习.谢谢啊,好人一生平安... 解决方案 http://www.cnblogs.com/javaspring/archive/2012/08/14/2656223.html

c语言-在C语言编程中,我定义的全局变量足有2M大小,但生成的程序只有20k,怎么回事?

问题描述 在C语言编程中,我定义的全局变量足有2M大小,但生成的程序只有20k,怎么回事? 在C语言编程中,我定义的全局变量足有2M大小,但生成的程序只有20k,怎么回事? 解决方案 全局变量是运行时操作系统分配的,分配在堆上,不是分配在静态区,所以不会影响exe的大小. 解决方案二: 你的全局变量没有初始化数据吧?如果你有2M大小的数据,就不一样了. 比如, char a[2*1024*1024] = {0,1,2,3,4..........}; char b[2*1024*1024]; 在链

c语言编程 多项式加法-c语言编程中求多项式加法

问题描述 c语言编程中求多项式加法 多项式加法(5分) 题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出. 程序要处理的幂最大为100. 输入格式: 总共要输入两个多项式,每个多项式的输入格式如下: 每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数.第一行一定是最高幂,最后一行一定是0次幂. 注意第一行和最后一行之间不一

C语言编程中,怎么定义数据格式?

问题描述 C语言编程中,怎么定义数据格式? 怎么在C语言中,定义10HZ数据格式如下: 第0-1字节代表帧头,2-5字节代表时戳,6-8字节代表姓,9-11字节代表名,12-13字节代表生日 ....... emphasized text PS:以前学过C语言,但是过了好几年,都忘了,现在工作要用到,但是却忘了怎么运用了.所以希望广大的网友能知道,麻烦告知. 谢谢啦.

qt excel mysql-qt编程中excel文件如何导入mysql中

问题描述 qt编程中excel文件如何导入mysql中 求助 如何实现qt编程的excel文件导入mysql 具体点 万分感谢

《C语言解惑》—— 第一篇 C语言编程中的对与错

第一篇 C语言编程中的对与错 本篇主要采用分析编程中存在的典型错误.对比正确与错误程序的方法,使读者加深印象并提高分辨语法对错及编程的能力,进而达到尽快掌握C语言编程基础知识的目的.

JS中判断null、undefined与NaN的方法

 这篇文章主要介绍了JS中判断null.undefined与NaN的方法,需要的朋友可以参考下 写了个 str ="s"++;  然后出现Nan,找了一会.  收集资料如下判断:  1.判断undefined:  代码如下: <span style="font-size: small;">var tmp = undefined;  if (typeof(tmp) == "undefined"){  alert("undefi

C语言编程中从密码文件获取数据的函数总结_C 语言

C语言getpw()函数:取得指定用户的密码文件数据头文件: #include <pwd.h> #include <sys/types.h> 定义函数: int getpw(uid_t uid, char *buf); 函数说明:getpw()会从/etc/passwd中查找符合参数uid所指定的用户账号数据, 找不到相关数据就返回-1. 所返回的buf 字符串格式如下: 账号:密码:用户识别码(uid):组识别码(gid):全名:根目录:shell 返回值:返回 0 表示成功,