Golang如何删除文件?如何判断文件是否存在?文件删除常用函数是什么?本篇文章运用简单易懂的例子给大家介绍一下的方法,感兴趣的小伙伴们可以参考借鉴,希望对你们有所帮助。

Golang培训班

  判断文件是否存在

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

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语言,在这里推荐老男孩教育,我们的学习周期为4-6个月,班型有周末班、网络班,学员可以根据自己的实际情况选择适合的班型。

  推荐阅读: