Archivos y directorios temporales

GolangGolangBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En la programación, a menudo necesitamos crear datos que ya no son necesarios una vez que el programa finaliza. Los archivos y directorios temporales son útiles para este propósito ya que no contaminan el sistema de archivos con el tiempo.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/FileOperationsGroup(["File Operations"]) go/FileOperationsGroup -.-> go/temporary_files_and_directories("Temporary Files and Directories") subgraph Lab Skills go/temporary_files_and_directories -.-> lab-15517{{"Archivos y directorios temporales"}} end

Archivos y directorios temporales

En este laboratorio, debes crear archivos y directorios temporales en Go.

  • Utiliza os.CreateTemp para crear un archivo temporal.
  • Utiliza os.MkdirTemp para crear un directorio temporal.
  • Utiliza os.RemoveAll para eliminar el directorio temporal.
  • Utiliza os.WriteFile para escribir datos en un archivo.
$ go run temporary-files-and-directories.go
Nombre del archivo temporal: /tmp/sample610887201
Nombre del directorio temporal: /tmp/sampledir898854668

A continuación está el código completo:

// A lo largo de la ejecución del programa, a menudo queremos crear
// datos que ya no son necesarios una vez que el programa finaliza.
// Los *archivos y directorios temporales* son útiles para este
// propósito ya que no contaminan el sistema de archivos con el tiempo.

package main

import (
	"fmt"
	"os"
	"path/filepath"
)

func check(e error) {
	if e!= nil {
		panic(e)
	}
}

func main() {

	// La forma más fácil de crear un archivo temporal es llamando a
	// `os.CreateTemp`. Crea un archivo *y* lo abre para lectura y escritura.
	// Proporcionamos `""` como primer argumento, por lo que `os.CreateTemp`
	// creará el archivo en la ubicación predeterminada de nuestro sistema operativo.
	f, err := os.CreateTemp("", "sample")
	check(err)

	// Muestra el nombre del archivo temporal. En los sistemas operativos
	// basados en Unix, el directorio probablemente será `/tmp`. El nombre
	// del archivo comienza con el prefijo dado como segundo argumento a
	// `os.CreateTemp` y el resto se elige automáticamente para garantizar
	// que las llamadas concurrentes siempre crearán nombres de archivo diferentes.
	fmt.Println("Nombre del archivo temporal:", f.Name())

	// Limpia el archivo una vez que hayas terminado. Es probable que el
	// sistema operativo limpie los archivos temporales por sí solo después
	// de un tiempo, pero es buena práctica hacerlo explícitamente.
	defer os.Remove(f.Name())

	// Podemos escribir algunos datos en el archivo.
	_, err = f.Write([]byte{1, 2, 3, 4})
	check(err)

	// Si pretendemos escribir muchos archivos temporales, es posible que
	// prefiramos crear un *directorio* temporal. Los argumentos de
	// `os.MkdirTemp` son los mismos que los de `CreateTemp`, pero devuelve
	// un *nombre de directorio* en lugar de un archivo abierto.
	dname, err := os.MkdirTemp("", "sampledir")
	check(err)
	fmt.Println("Nombre del directorio temporal:", dname)

	defer os.RemoveAll(dname)

	// Ahora podemos sintetizar nombres de archivos temporales prefijándolos
	// con nuestro directorio temporal.
	fname := filepath.Join(dname, "file1")
	err = os.WriteFile(fname, []byte{1, 2}, 0666)
	check(err)
}

Resumen

En este laboratorio, aprendiste cómo crear archivos y directorios temporales en Go utilizando os.CreateTemp, os.MkdirTemp, os.RemoveAll y os.WriteFile. Los archivos y directorios temporales son útiles para crear datos que ya no son necesarios una vez que el programa finaliza y no contaminan el sistema de archivos con el tiempo.