Создание временного файла
Используйте 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 с пустой строкой каталога.
Читайте также:
- Найти текущий рабочий каталог в Golang
- Получить список всех файлов (рекурсивно) в каталоге в Golang
- Читать файл (stdin) построчно в Golang
Комментариев нет:
Отправить комментарий