Avatar ·

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