临时文件通常在运行测试用例时使用,或者如果你的应用需要存储短期内容(如用户上传的临时数据)。
创建临时文件
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
包中包含TempFile
和TempDir
函数。 TempFile
函数参数为目录和文件前缀。 它返回带有临时文件的os.File
。 请注意,调用者负责清除文件。 前面的示例使用os.Remove
函数来执行此操作。
TempDir
函数的工作方式与TempFile
相同。 不同之处在于它返回包含目录路径的字符串。
临时
file/dir
名称由前缀和随机后缀组成。 使用相同参数调用TempFile/Dir
函数的多个程序将不会得到相同的结果。