os.TempDir în Go

Returnează directorul pentru fișiere temporare al sistemului (de obicei /tmp pe Linux).

Sintaxă
func TempDir() string

Ce face os.TempDir

os.TempDir spune unde se pun fișierele temporare. Pe Unix folosește variabila de mediu $TMPDIR dacă este setată, altfel /tmp. Pe Windows folosește %TMP%, %TEMP% sau alte variabile.

Funcția nu creează nimic și nu verifică dacă directorul există. Pentru un director de lucru propriu, cu nume unic, folosește os.MkdirTemp.

Ce returnează

Calea directorului temporar, ca text. Nu returnează eroare.

Exemple

Exemplul 1: Directorul temporar al sistemului

Rezultatul depinde de sistem: pe macOS fiecare utilizator are un director sub /var/folders.

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Println(os.TempDir())
}

Rezultat pe Linux (pe macOS: /var/folders/…/T/)

/tmp

Exemplul 2: Influența variabilei TMPDIR

Pe Linux și macOS, TMPDIR are prioritate.

package main

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

func main() {
    os.Setenv("TMPDIR", "/srv/aplicatie/tmp")
    fmt.Println(os.TempDir())
    fmt.Println(filepath.Join(os.TempDir(), "export.csv"))
}

Rezultat

/srv/aplicatie/tmp
/srv/aplicatie/tmp/export.csv

Greșeli frecvente

  • Scrii fișiere direct în os.TempDir() cu nume fixe (/tmp/date.txt). Două programe pot folosi același nume; folosește os.MkdirTemp sau os.CreateTemp.
  • Presupui că directorul temporar este mereu /tmp. Pe macOS și Windows nu este; folosește funcția.

Comenzi înrudite

  • os.MkdirTemp: Creează un director temporar nou, cu nume unic, și returnează calea lui.
  • os.Getenv: Returnează valoarea unei variabile de mediu sau textul gol dacă variabila nu există.
  • os.UserHomeDir: Returnează directorul personal al utilizatorului și directoarele standard pentru configurare și cache.