📌  相关文章
📜  检查目录是否存在于 - Go 编程语言 - Go 编程语言(1)

📅  最后修改于: 2023-12-03 15:40:35.666000             🧑  作者: Mango

检查目录是否存在于 Go 编程语言

在 Go 编程语言中,我们可以使用 os.Stat 函数来检查目录是否存在。os.Stat 函数返回一个 os.FileInfo 接口,它包含文件或目录的元信息。

以下是一个检查目录是否存在的示例代码:

package main

import (
    "fmt"
    "os"
)

func main() {
    path := "./mydir"
    if _, err := os.Stat(path); os.IsNotExist(err) {
        fmt.Printf("目录 %s 不存在\n", path)
    } else {
        fmt.Printf("目录 %s 存在\n", path)
    }
}

以上代码首先定义了一个要检查的目录路径 ./mydir。然后使用 os.Stat 函数检查该目录是否存在,如果该目录不存在,则 os.Stat 函数会返回一个错误。我们可以使用 os.IsNotExist 函数检查该错误是否是因为目录不存在引起的。如果 os.Stat 函数返回的错误是因为目录不存在引起的,则输出目录不存在的信息;否则,输出目录存在的信息。

以上代码的输出结果为:

目录 ./mydir 存在

如果要检查多级目录是否存在,可以使用 filepath.Join 函数来合并路径,例如:

package main

import (
    "fmt"
    "os"
    "path/filepath"
)

func main() {
    path := filepath.Join(".", "mydir", "subdir")
    if _, err := os.Stat(path); os.IsNotExist(err) {
        fmt.Printf("目录 %s 不存在\n", path)
    } else {
        fmt.Printf("目录 %s 存在\n", path)
    }
}

以上代码首先使用 filepath.Join 函数合并目录路径 ./mydir/subdir。然后使用 os.Stat 函数检查该目录是否存在,如果该目录不存在,则输出目录不存在的信息;否则,输出目录存在的信息。

以上代码的输出结果为:

目录 ./mydir/subdir 不存在

因为 ./mydir/subdir 目录不存在。