Como criar uma pasta em Go se ela não existir (mkdir if not exists)
Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema. Preciso criar um diretório no programa para salvar logs, mas apenas se ele ainda não existir. Se a pasta já existir — não preciso fazer nada, apenas continuar o trabalho.
O problema é que a função padrão os.Mkdir() retorna um erro se o diretório já existir. Tentei primeiro verificar com os.Stat() e depois criar, mas isso parece um workaround. Em outras linguagens (por exemplo, Python) existe os.makedirs(exist_ok=True), e em PHP — mkdir($path, 0777, true). Existe algo similar em Go?
Aqui está meu código atual, que me parece incorreto:
```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("Erro ao criar pasta:", err)
}
}
}
```
Este código funciona, mas ouvi dizer que não é thread-safe, e pode haver