воскресенье, 19 июля 2020 г.

Пакет ioutil в Golang, функция TempFile для создания временных файлов

func TempFile(dir, pattern string) (f *os.File, err error)

TempFile создает новый временный файл в каталоге dir, открывает файл для чтения и записи и возвращает полученный *os.File. Имя файла генерируется путем взятия pattern и добавления случайной строки в конец. Если pattern содержит "*", случайная строка заменяет последнюю "*". Если dir - пустая строка, TempFile использует каталог по умолчанию для временных файлов (полученный от функции os.TempDir). Несколько программ, вызывающих TempFile одновременно, не будут выбирать один и тот же файл. Вызывающая сторона может использовать f.Name(), чтобы найти путь к файлу. Вызывающий абонент должен удалить файл, когда он больше не нужен.

Пример использования TempFile

package main

import (
    "io/ioutil"
    "log"
    "os"
)

func main() {
    content := []byte("temporary file's content")
    tmpfile, err := ioutil.TempFile("", "example")
    if err != nil {
        log.Fatal(err)
    }

    defer os.Remove(tmpfile.Name()) // очистка

    if _, err := tmpfile.Write(content); err != nil {
        log.Fatal(err)
    }
    if err := tmpfile.Close(); err != nil {
        log.Fatal(err)
    }
}

Пример использования TempFile с суффиксом

package main

import (
    "io/ioutil"
    "log"
    "os"
)

func main() {
    content := []byte("temporary file's content")
    tmpfile, err := ioutil.TempFile("", "example.*.txt")
    if err != nil {
        log.Fatal(err)
    }

    defer os.Remove(tmpfile.Name()) // очистка

    if _, err := tmpfile.Write(content); err != nil {
        tmpfile.Close()
        log.Fatal(err)
    }
    if err := tmpfile.Close(); err != nil {
        log.Fatal(err)
    }
}


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


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

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