📅  最后修改于: 2023-12-03 15:40:35.666000             🧑  作者: Mango
在 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
目录不存在。