临时文件和目录
临时文件和目录函数介绍
参考文档: https://purewhite.io/2017/05/04/temp-file-in-go/
函数说明
func TempDir(dir, prefix string) (name string, err error)
func TempFile(dir, prefix string) (f *os.File, err error)
TempDir
会在你给出的dir
中创建一个新的以prefix
为前缀的名字随机且不重复的临时目录,如果dir
是空,则使用系统默认的临时目录(比如在 mac 上是 /var/,在 linux 上是 /tmp/),并且返回这个目录的绝对路径(完整路径)。
同样的,TempFile
会做同样的事情,只不过返回的是一个文件指针而已。不过要记得,如果你需要文件的后缀名有一定要求的话,需要自己去调用 os.Rename
函数进行修改。
注意: **调用这两个函数一定要记得自己去删除,不然 go 不会主动帮你删除掉你创建出来的临时目录和文件,因为 go 也不知道你啥时候不再需要它们。
使用例子
package main
import (
"fmt"
"io/ioutil"
"os"
)
func main() {
name, err := ioutil.TempDir("", "test")
if err != nil {
panic(err)
}
fmt.Println(name)
defer os.RemoveAll(name)
file, err := ioutil.TempFile("", "test")
if err != nil {
panic(err)
}
fmt.Println(file.Name())
defer func() {
file.Close()
os.Remove(file.Name())
}()
}
输出:
/tmp/test984100615
/tmp/test887099578