go基础库之创建临时文件

临时文件通常在运行测试用例时使用,或者如果你的应用需要存储短期内容(如用户上传的临时数据)。

创建临时文件

Golang 版本

1.12.1

前言

临时文件通常在运行测试用例时使用,或者如果你的应用需要存储短期内容(如用户上传的临时数据)。

实现

package main

import "io/ioutil"
import "os"
import "fmt"

func main() {
	tFile, err := ioutil.TempFile("", "gostandardlibrary")
	if err != nil {
		panic(err)
	}
	// The called is responsible for handling
	// the clean up.
	defer os.Remove(tFile.Name())

	fmt.Println(tFile.Name())

	// TempDir returns
	// the path in string.
	tDir, err := ioutil.TempDir("", "gostandardlibrary")
	if err != nil {
		panic(err)
	}
	defer os.Remove(tDir)
	fmt.Println(tDir)

}
$ go run main.go
C:\Users\Ganymedenil\AppData\Local\Temp\gostandardlibrary308359067
C:\Users\Ganymedenil\AppData\Local\Temp\gostandardlibrary531728446

原理

ioutil包中包含TempFileTempDir函数。 TempFile函数参数为目录和文件前缀。 它返回带有临时文件的os.File。 请注意,调用者负责清除文件。 前面的示例使用os.Remove函数来执行此操作。

TempDir函数的工作方式与TempFile相同。 不同之处在于它返回包含目录路径的字符串。

临时file/dir名称由前缀和随机后缀组成。 使用相同参数调用TempFile/Dir函数的多个程序将不会得到相同的结果。