вторник, 21 апреля 2020 г.

Создание временного файла или каталога в Golang

Создание временного файла

Используйте ioutil.TempFile в пакете io/ioutil, чтобы создать глобально уникальный временный файл. Это ваша собственная задача - удалить файл, когда он больше не нужен.

file, err := ioutil.TempFile("dir", "prefix")
if err != nil {
    log.Fatal(err)
}
defer os.Remove(file.Name())

fmt.Println(file.Name()) // Например "dir/prefix054003078"

Вызов ioutil.TempFile

  • создает новый файл с именем, начинающимся с "prefix" в каталоге "dir",
  • открывает файл для чтения и записи,
  • и возвращает новый *os.File.

Чтобы поместить новый файл в os.TempDir(), каталог по умолчанию для временных файлов, вызовите ioutil.TempFile с пустой строкой каталога.

Добавить суффикс к имени временного файла (с версии Go 1.11)

Начиная с Go 1.11, если вторая строка, заданная для TempFile, содержит "*", случайная строка заменяет эту "*".

file, err := ioutil.TempFile("dir", "myname.*.bat")
if err != nil {
    log.Fatal(err)
}
defer os.Remove(file.Name())

fmt.Println(file.Name()) 
// Например "dir/myname.054003078.bat"

Если "*" не включено, старое поведение сохраняется, и случайные цифры добавляются в конец.

Создание временного каталога

Используйте ioutil.TempDir в пакете io/ioutil, чтобы создать глобально уникальный временный каталог.

dir, err := ioutil.TempDir("dir", "prefix")
if err != nil {
 log.Fatal(err)
}
defer os.RemoveAll(dir)

Вызов ioutil.TempDir

  • создает новый каталог с именем, начинающимся с "prefix" в каталоге "dir"
  • и возвращает путь к новому каталогу.

Чтобы поместить новый каталог в os.TempDir(), каталог по умолчанию для временных файлов, вызовите ioutil.TempDir с пустой строкой каталога.


Читайте также:


Комментариев нет:

Отправить комментарий