如何在Go中创建文件夹(如果不存在)
大家好!我刚开始学习Go,遇到了一个问题。我需要在程序中创建一个用于保存日志的目录,但仅当它不存在时才创建。如果文件夹已经存在,则无需执行任何操作,只需继续工作。
问题在于,标准函数os.Mkdir()在目录已存在时会返回错误。我尝试过先通过os.Stat()检查,然后再创建,但这看起来像是一个临时解决方案。在其他语言(例如Python)中有os.makedirs(exist_ok=True),在PHP中有mkdir($path, 0777, true)。Go中是否有类似的功能?
以下是我当前的代码,我觉得它不太对劲:
```go
package main
import (
"fmt"
"os"
)
func main() {
path := "./logs"
if _, err := os.Stat(path); os.IsNotExist(err) {
err := os.Mkdir(path, 0755)
if err != nil {
fmt.Println("创建文件夹时出错:", err)
}
}
}
```
这段代码可以工作,但我听说它不是线程安全的,而且可能...