临时文件和目录

临时文件和目录函数介绍

参考文档: 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