您现在的位置是:首页 > 编程 > 

Go程序例子(69):临时文件和目录

2025-07-22 17:07:48
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组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1165574.html

相关标签:无
上传时间: 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(""