Временные файлы часто используются при запуске тестов или в тех случаях, когда приложению требуется место для краткосрочного хранения данных вроде пользовательских загрузок или временные настройки. В данной инструкции дан простой способ для создания временного файла или временной директории.
Как создать временные файлы в Go?
1. Создайте файл tempfile.go
со следующим содержимым:
Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎
Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
package main import "io/ioutil" import "os" import "fmt" func main() { tFile, err := ioutil.TempFile("", "gostdcookbook") if err != nil { panic(err) } // Вызов ответственен за очистку defer os.Remove(tFile.Name()) fmt.Println(tFile.Name()) // TempDir возвращает путь tDir, err := ioutil.TempDir("", "gostdcookbookdir") if err != nil { panic(err) } defer os.Remove(tDir) fmt.Println(tDir) } |
2. Запустите код через go run tempfile.go
;
3. Посмотрите на результат в терминале:
Изучаем пакет ioutil и функции TempFile и TempDir
Пакет ioutil
содержит функции TempFile
и TempDir
. Функция TempFile
принимает префикс директории и файла. Возвращается тип os.File
с базовым временным файлом. Обратите внимание, что вызывающий элемент отвечает за очистку файлов. В примере выше для этого используется функция os.Remove
.
Функция TempDir
работает точно так же, разница в том, что возвращается строка с путем к директории.
На заметку: Названия для временных файлов и директорий состоят из префикса и случайного суффикса. Несколько программ, что вызывают функции
TempFile
илиTempDir
с одинаковыми аргументами, получат разные названия для своих файлов или директорий.
Администрирую данный сайт с целью распространения как можно большего объема обучающего материала для языка программирования Go. В IT с 2008 года, с тех пор изучаю и применяю интересующие меня технологии. Проявляю огромный интерес к машинному обучению и анализу данных.
E-mail: vasile.buldumac@ati.utm.md
Образование
Технический Университет Молдовы (utm.md), Факультет Вычислительной Техники, Информатики и Микроэлектроники
- 2014 — 2018 Universitatea Tehnică a Moldovei, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Universitatea Tehnică a Moldovei, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»