Функция os.MkdirTemp

Функция os.MkdirTemp создает новую временную директорию в указанной директории. Она возвращает путь к созданной директории и ошибку. Первым параметром функция принимает директорию, в которой нужно создать временную директорию, вторым параметром - шаблон для имени создаваемой директории. Если первый параметр передать как пустую строку, то директория будет создана в стандартной временной директории операционной системы (обычно /tmp в Unix-системах). В шаблоне можно использовать символ *, который будет заменен на случайную строку для обеспечения уникальности имени.

Синтаксис

goos.MkdirTemp(dir, pattern)

Пример

Давайте создадим временную директорию в системной временной папке с шаблоном "example-*":

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  dir, err := os.MkdirTemp("", "example-*")
  if err != nil {
    fmt.Println(err)
    return
  }
  defer os.RemoveAll(dir)

  fmt.Println(dir)
}

Результат выполнения кода:

go"/tmp/example-123456789"

Пример

Давайте создадим временную директорию в указанной папке "./tmp" с шаблоном "app-*":

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  dir, err := os.MkdirTemp("./tmp", "app-*")
  if err != nil {
    fmt.Println(err)
    return
  }
  defer os.RemoveAll(dir)

  fmt.Println(dir)
}

Результат выполнения кода:

go"tmp/app-987654321"

Пример

Давайте создадим временную директорию и проверим, что она действительно была создана:

gopackage main

import (
  "fmt"
  "os"
)

func main() {
  dir, err := os.MkdirTemp("", "test-*")
  if err != nil {
    fmt.Println(err)
    return
  }
  defer os.RemoveAll(dir)

  info, err := os.Stat(dir)
  if err != nil {
    fmt.Println(err)
    return
  }

  if info.IsDir() {
    fmt.Println("Directory created:", dir)
  }
}

Результат выполнения кода:

go"Directory created: /tmp/test-123456789"

Смотрите также

  • функцию os.CreateTemp,
    которая создает временный файл
  • функцию os.Mkdir,
    которая создает одну директорию
  • функцию os.MkdirAll,
    которая создает директорию и все родительские директории
  • функцию os.RemoveAll,
    которая удаляет директорию и все ее содержимое