Go程序例子(69):临时文件和目录
Go程序例子(69):临时文件和目录
在程序执行过程中,我们经常需要创建一些在程序退出后不再需要的数据。临时文件和目录非常适合这种用途,因为它们不会随着时间的推移污染文件系统。代码语言:go复制package main
import (
"fmt"
"os"
"path/filepath"
)
func che
Go程序例子(69):临时文件和目录
在程序执行过程中,我们经常需要创建一些在程序退出后不再需要的数据。临时文件和目录非常适合这种用途,因为它们不会随着时间的推移污染文件系统。
代码语言:go复制package main
import (
"fmt"
"os"
"path/filepath"
)
func check(e error) {
if e != nil {
panic(e)
}
}
func main() {
// 创建临时文件最简单的方法是调用 os.CreateTemp。它会创建一个文件并打开它以进行读写。我们提供 "" 作为第一个参数,因此 os.CreateTemp 会在操作系统的默认位置创建文件。
f, err := os.CreateTemp("", "sample")
check(err)
// 显示临时文件的名称。在基于 Unix 的操作系统上,目录通常是 /tmp。文件名以 os.CreateTemp 的第二个参数作为前缀,其余部分会自动生成,以确保并发调用时始终创建不同的文件名。
fmt.Println("Temp file name:", f.ame())
// 在我们完成操作后清理文件。操作系统可能会在一段时间后自动清理临时文件,但显式地执行清理是一个良好的实践。
defer os.Remove(f.ame())
// 我们可以向文件中写入一些数据。
_, err = f.Write([]byte{1, 2, , 4})
check(err)
// 如果我们打算写入许多临时文件,可能更倾向于创建一个临时目录。os.MkdirTemp 的参数与 CreateTemp 相同,但它返回的是目录名而不是打开的文件。
dname, err := os.MkdirTemp("", "sampledir")
check(err)
fmt.Println("Temp dir name:", dname)
defer os.RemoveAll(dname)
// 现在,我们可以通过在临时目录前添加前缀来合成临时文件名。
fname := filepath.Join(dname, "file1")
err = os.WriteFile(fname, []byte{1, 2}, 0666)
check(err)
}
运行结果:
代码语言:javascript代码运行次数:0运行复制➜ go run temporary-files-and-directories/temporary-files-and-directories.go
Temp file name: /var/folders/rz/5ypggxrj4tn_2wxyt7qdl0vc0000gn/T/sample2528240
Temp dir name: /var/folders/rz/5ypggxrj4tn_2wxyt7qdl0vc0000gn/T/sampledir27796201
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-21 02:18:53
推荐阅读
留言与评论(共有 12 条评论) |
本站网友 郑志昊 | 10分钟前 发表 |
本站网友 男子下体勃起真人图 | 3分钟前 发表 |
可能更倾向于创建一个临时目录 | |
本站网友 高血压菜谱 | 17分钟前 发表 |
fmt.Println("Temp file name | |
本站网友 果壳里的城户型图 | 9分钟前 发表 |
= os.CreateTemp("" | |
本站网友 小广告 | 27分钟前 发表 |
"sample") check(err) // 显示临时文件的名称 | |
本站网友 android培训 | 15分钟前 发表 |
因此 os.CreateTemp 会在操作系统的默认位置创建文件 | |
本站网友 亚历山大麦昆 | 10分钟前 发表 |
= os.MkdirTemp("" | |
本站网友 成都招商银行 | 2分钟前 发表 |
0666) check(err) }运行结果:代码语言:javascript代码运行次数:0运行复制➜ go run temporary-files-and-directories/temporary-files-and-directories.go Temp file name | |
本站网友 冬天吃什么好 | 3分钟前 发表 |
可能更倾向于创建一个临时目录 | |
本站网友 巴西性工作者 | 16分钟前 发表 |
= filepath.Join(dname | |
本站网友 北京心理咨询中心 | 20分钟前 发表 |
= os.MkdirTemp("" |