6

Create a temporary file or directory

 3 years ago
source link: https://yourbasic.org/golang/temporary-file-directory/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Create a temporary file or directory

yourbasic.org/golang
temporary-mailbox.jpg

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.

Share:             


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK