Create a temporary file or directory
File
Use ioutil.TempFile
in package
io/ioutil
to create a
globally unique temporary file.
It’s your own job to remove the file when it’s no longer needed.
file, err := ioutil.TempFile("dir", "prefix")
if err != nil {
log.Fatal(err)
}
defer os.Remove(file.Name())
fmt.Println(file.Name()) // For example "dir/prefix054003078"
The call to ioutil.TempFile
- creates a new file with a name starting with
"prefix"
in the directory"dir"
, - opens the file for reading and writing,
- and returns the new
*os.File
.
To put the new file in os.TempDir()
,
the default directory for temporary files,
call ioutil.TempFile
with an empty directory string.
Add a suffix to the temporary file nameGo 1.11
Starting with Go 1.11, if the second string given to TempFile
includes a "*"
,
the random string replaces this "*"
.
file, err := ioutil.TempFile("dir", "myname.*.bat")
if err != nil {
log.Fatal(err)
}
defer os.Remove(file.Name())
fmt.Println(file.Name()) // For example "dir/myname.054003078.bat"
If no "*"
is included the old behavior is retained,
and the random digits are appended to the end.
Directory
Use ioutil.TempDir
in package
io/ioutil
to create a
globally unique temporary directory.
dir, err := ioutil.TempDir("dir", "prefix")
if err != nil {
log.Fatal(err)
}
defer os.RemoveAll(dir)
The call to ioutil.TempDir
- creates a new directory with a name starting with
"prefix"
in the directory"dir"
- and returns the path of the new directory.
To put the new directory in os.TempDir()
,
the default directory for temporary files,
call ioutil.TempDir
with an empty directory string.