Crear un nuevo directorio en Go

Musfirah Waseem 20 junio 2023
  1. Modos de permiso de os.Mkdir y os.MkdirAll
  2. Utilice el método os.Mkdir() en Go
  3. Utilice el método os.MkdirAll() en Go
Crear un nuevo directorio en Go

Go tiene muchos métodos para crear directorios, uno de los cuales es os.Mkdir. Podemos asignar el nombre especificado y los bits de permiso al directorio recién formado.

El os.MkdirAll ayuda a crear varios directorios de forma recursiva, incluidos los padres que faltan.

Modos de permiso de os.Mkdir y os.MkdirAll

Notación Entero octal Funcionalidad
rwx 7 Leer, escribir y ejecutar
rw- 6 Leer escribir
r-x 5 Leer y ejecutar
r-- 4 Leer
-wx 3 Escribir y ejecutar
-w- 2 Escribir
--x 1 Ejecutar
--- 0 no permisos

Acceso Usuarios

Permiso octales Campo
rwx------ 0700 Usuario
---rwx--- 0070 Grupo
------rwx 0007 Otro

Permisos comunes

  1. 0664: solo el propietario puede leer y escribir en el archivo. Mientras que otros usuarios solo pueden leer el archivo.
  2. 0600: solo el propietario puede leer y escribir en el archivo, y nadie más puede acceder a él.
  3. 0777: Todos los usuarios tienen pleno acceso al archivo.
  4. 0755: solo el propietario tiene acceso completo, mientras que otros usuarios solo pueden ver y ejecutar el archivo.
  5. 0666: acceso de lectura y escritura a todos los usuarios del archivo.
  6. 0750: El propietario del archivo puede leerlo, escribirlo y ejecutarlo, pero los usuarios solo pueden leerlo y ejecutarlo.

Utilice el método os.Mkdir() en Go

package main

import (
	"log"
	"os"
	"fmt"
)

func main() {

	error := os.Mkdir("HomeDir", 0750)

	if error != nil && !os.IsExist(error) {

		log.Fatal(error)

	}

	fmt.Print("The directory has been created successfully.")

}

Producción :

The directory has been created successfully.

El código anterior nos permite crear un nuevo directorio. Si hubiera algún error al crear el nuevo directorio, sería del tipo PathError.

La función os.Mkdir solo crea un único directorio. Podemos crear subdirectorios usando esta función.

Utilice el método os.MkdirAll() en Go

package main

import (
	"log"

	"os"

	"fmt"
)

func main() {
	DirPath := "Desktop/Documents/MyDirectory"

	err := os.MkdirAll(DirPath, os.ModePerm)

	if err != nil {

		log.Println(err)

	}

	fmt.Print("The directory has been created successfully.")
}

Producción :

The directory has been created successfully.

Es útil crear una función para crear múltiples directorios usando un solo comando. Los directorios principales que faltan se crean automáticamente, lo que evita la redundancia de escribir código para crear nuevos directorios.

Musfirah Waseem avatar Musfirah Waseem avatar

Musfirah is a student of computer science from the best university in Pakistan. She has a knack for programming and everything related. She is a tech geek who loves to help people as much as possible.

LinkedIn