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șteos.MkdirTempsauos.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.