func TempDir(dir, pattern string) (name string, err error)
TempDir создает новый временный каталог в каталоге dir. Имя каталога генерируется путем взятия pattern и добавления случайной строки к концу. Если pattern содержит "*", случайная строка заменяет последнюю "*". TempDir возвращает имя нового каталога. Если dir - пустая строка, TempDir использует каталог по умолчанию для временных файлов (возвращаемый функцией os.TempDir). Несколько программ, вызывающих TempDir одновременно, не будут выбирать один и тот же каталог. Вызывающий абонент обязан удалить каталог, когда он больше не нужен.
Пример использования ioutil.TempDir
package main
import (
"io/ioutil"
"log"
"os"
"path/filepath"
)
func main() {
content := []byte("temporary file's content")
dir, err := ioutil.TempDir("", "example")
if err != nil {
log.Fatal(err)
}
defer os.RemoveAll(dir) // очистка
tmpfn := filepath.Join(dir, "tmpfile")
if err := ioutil.WriteFile(tmpfn, content, 0666); err != nil {
log.Fatal(err)
}
}
Пример использования ioutil.TempDir с суффиксом
package main
import (
"io/ioutil"
"log"
"os"
"path/filepath"
)
func main() {
parentDir := os.TempDir()
logsDir, err := ioutil.TempDir(parentDir, "*-logs")
if err != nil {
log.Fatal(err)
}
defer os.RemoveAll(logsDir) // очистка
// Логи могут быть очищены раньше, если необходимо,
// путем поиска всех каталогов с суффиксом *-logs.
globPattern := filepath.Join(parentDir, "*-logs")
matches, err := filepath.Glob(globPattern)
if err != nil {
log.Fatalf("Failed to match %q: %v", globPattern, err)
}
for _, match := range matches {
if err := os.RemoveAll(match); err != nil {
log.Printf("Failed to remove %q: %v", match, err)
}
}
}
Читайте также:
- Создание временного файла или каталога в Golang
- Пакет io в Golang, функции чтения
- Читать файл (stdin) построчно в Golang
Комментариев нет:
Отправить комментарий