Cómo crear una carpeta en Go si no existe (mkdir if not exists)
¡Hola a todos! Acabo de empezar a aprender Go y me encontré con este problema. Necesito crear un directorio en el programa para guardar logs, pero solo si aún no existe. Si la carpeta ya existe, no hay que hacer nada, solo continuar.
El problema es que la función estándar os.Mkdir() devuelve un error si el directorio ya existe. Intenté primero verificar con os.Stat() y luego crear, pero parece un parche. En otros lenguajes (por ejemplo, Python) existe os.makedirs(exist_ok=True), y en PHP — mkdir($path, 0777, true). ¿Hay algo similar en Go?
Aquí está mi código actual, que me parece incorrecto:
```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("Error al crear la carpeta:", err)
}
}
}
```
Este código funciona, pero he oído que no es thread-safe, y en general puede