老男孩教育专注IT教育10余年,只培养IT技术精英

全国免费咨询电话(渠道合作):400-609-2893

【GO语言高级课程】之Go语言文件删除

老男孩IT教育

常见问题

2021年9月22日 17:03

GO语言中如何判断文件或目录是否存在常用函数?GO语言中文件删除常用函数有哪些?以下是具体的内容介绍,快跟着小编来学习一下吧。

  GO语言中如何判断文件或目录是否存在常用函数?GO语言中文件删除常用函数有哪些?以下是具体的内容介绍,快跟着小编来学习一下吧。

  判断文件是否存在

  判断文件或目录是否存在常用函数:

func IsExist(err error) bool

  返回一个布尔值说明该错误是否表示一个文件或目录已经存在。ErrExist和一些系统调用错误会使它返回真。

func IsNotExist(err error) bool

  返回一个布尔值说明该错误是否表示一个文件或目录不存在。ErrNotExist和一些系统调用错误会使它返回真。

package main

import (
    "fmt"
    "os"
)

func main() {
    path := "./oldboy/golang.go"
    b, err := PathExists(path)
    if err != nil {
        fmt.Printf("PathExists(%s),err(%v)\n", path, err)
    }
    if b {
        fmt.Printf("path %s 存在\n", path)
    } else {
        fmt.Printf("path %s 不存在\n", path)
    }
}

/*
   判断文件或文件夹是否存在
   如果返回的错误为nil,说明文件或文件夹存在
   如果返回的错误类型使用os.IsNotExist()判断为true,说明文件或文件夹不存在
   如果返回的错误为其它类型,则不确定是否在存在
*/
func PathExists(path string) (bool, error) {

    _, err := os.Stat(path)
    if err == nil {
        return true, nil
    }
    if os.IsNotExist(err) {
        return false, nil
    }
    return false, err
}

  文件删除

  文件删除常用函数:

func Remove(name string) error

  Remove删除name指定的文件或目录。如果出错,会返回*PathError底层类型的错误。

func RemoveAll(path string) error

  RemoveAll删除path指定的文件,或目录及它包含的任何下级对象。它会尝试删除所有东西,除非遇到错误并返回。如果path指定的对象不存在,RemoveAll会返回nil而不返回错误。

  代码实现:

package main

import (
    "fmt"
    "os"
)

func main() {
    err := os.Remove("./file1.txt")
    if err != nil {
        fmt.Printf("remove ./file1.txt err : %v\n", err)
    }
    err = os.RemoveAll("./file2.txt")
    if err != nil {
        fmt.Printf("remove all ./file2.txt err : %v\n", err)
    }
}

  想要学习GO语言,欢迎来老男孩教育试听。来校试听即送《8周掌握Go语言》书籍,本书由老男孩教育多位金牌讲师依托老男孩教育多年线下教育实践经验撰写,采用“理论+代码实例”的形式详细讲解Go语言基础、函数、结构体、方法、接口、常用标准库、网络编程、并发编程、测试等部分。本书适合想系统学习Go语言、快速上手Go语言开发的读者。

  推荐阅读:

  Go语言常见面试题讲解!老男孩GO语言培训

  【GO语言培训教程】小白必看,Go语言异常处理!

  Go语言可以做什么?优势在哪里?

本文经授权发布,不代表老男孩教育立场。如若转载请联系原作者。