Golang 检查目录是否存在

Golang 检查目录是否存在

在Golang中,我们有不同的内建函数来检查目录是否存在,例如Stat()、Open()和mkdir()。在这里我们使用了三个函数。在第一个示例中,我们使用了os包中的Stat()函数,而在第二个和第三个示例中,我们分别使用了Open()和mkdir()函数来实现结果。

方法1:使用os.stat()方法

os包提供了Stat()函数来获取文件或目录的信息。如果目录存在,该函数将返回一个FileInfo结构,否则将返回一个错误。

语法

func Stat(name string) (fi FileInfo, err error)

Stat()函数存在于os包中,用于检查特定目录的状态。该函数接受一个字符串参数name,表示目录的路径。它返回一个FileInfo结构体fi和一个错误err。

步骤

  • 首先,我们需要导入”fmt”和”os”包。

  • 现在,开始main()函数。在main()中,初始化一个新变量,并将目录路径作为字符串的形式输入给它。

  • 调用os包中的Stat()函数,并将目录路径作为参数。

  • 如果函数返回一个FileInfo结构体,则说明目录存在。

  • 如果函数返回一个错误,则检查错误类型是否为os.IsNotExist。

  • 如果错误类型为os.IsNotExist,则说明目录不存在。

  • 如果错误类型不是os.IsNotExist,则说明存在其他错误,目录可能存在也可能不存在。

示例

在以下示例中,我们将使用os.stats()函数来检查目录是否存在。

package main
import (
   "fmt"
   "os"
)

func main() {
   dir := "new"
   if _, err := os.Stat(dir); os.IsNotExist(err) {
      fmt.Println(dir, "does not exist")
   } else {
      fmt.Println("The provided directory named", dir, "exists")
   }
}

输出

new does not exist

方法2:使用OS.OPEN()方法

os包的Open()函数也可以用于检查目录是否存在。此函数打开文件或目录,并返回一个File结构。如果目录不存在,该函数将返回一个错误。

语法

func Open(name string) (file *File, err error)

open()函数存在于os包中,它接受一个字符串参数name,表示目录的路径。它返回一个指向File结构的指针file和一个错误err。

步骤

  • 首先,我们需要导入fmt和os包。

  • 然后开始main()函数。在main()函数内部,以字符串形式输入目录路径。

  • 使用目录路径作为参数调用os.Open()函数。

  • 如果函数返回一个File结构,表示目录存在。

  • 如果函数返回一个错误,检查错误类型是否为os.IsNotExist。

  • 如果错误类型为os.IsNotExist,表示目录不存在。

  • 如果错误类型不是os.IsNotExist,则存在其他错误,目录可能存在,也可能不存在。

示例

在下面的示例中,我们将使用os.open()函数来检查目录是否存在。

package main
import (
   "fmt"
   "os"
)

func main() {
   dir := "go"
   if _, err := os.Open(dir); os.IsNotExist(err) {
      fmt.Println("The directory named", dir, "does not exist")
   } else {
      fmt.Println("The directory namend", dir, "exists")
   }
}

输出

The directory named go does not exist

方法3:使用mkdir()函数

在这种方法中,我们将使用os包的mkdir()函数来检查给定的目录是否存在。如果目录已经存在,该函数将返回一个错误,否则它将创建该目录。

语法

func Mkdir(name string, perm FileMode) error

mkdir() 函数位于 os 包中,用于创建给定名称的新目录。该函数接收两个参数:一个表示目录路径的字符串名称和一个表示目录权限的整数 perm。它返回一个错误。

步骤

  • 首先,我们需要导入 fmt 和 os 包。

  • 然后开始 main() 函数。在 main() 内部,以字符串和整数的形式分别输入目录路径和权限。

  • 用目录路径和权限作为参数调用 os.Mkdir() 函数。

  • 如果函数返回一个错误,检查错误类型是否为 os.IsExist。

  • 如果错误类型是 os.IsExist,则目录已存在。

  • 如果错误类型不是 os.IsExist,则存在一些其他错误,该目录可能存在或不存在。

示例

在下面的示例中,我们将使用 mkdir() 函数来检查目录是否存在。

package main
import (
   "fmt"
   "os"
)

func main() {
   dir := "new"
   if err := os.Mkdir(dir, 0755); os.IsExist(err) {
      fmt.Println("The directory named", dir, "exists")
   } else {
      fmt.Println("The directory named", dir, "does not exist")
   }
}

输出

The directory named new does not exist

结论

我们成功地编译并执行了一个Golang程序,用于检查目录是否存在,同时附有示例。 Go语言提供了多种方法来检查目录是否存在。我们可以使用os.Stat(),os.Open(),或os.Mkdir()函数来完成这个任务。根据开发人员的需求,选择合适的方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程