当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


GO MkdirTemp用法及代码示例


GO语言"os"包中"MkdirTemp"函数的用法及代码示例。

用法:

func MkdirTemp(dir, pattern string)(string, error)

MkdirTemp 在目录 dir 中创建一个新的临时目录,并返回新目录的路径名。新目录的名称是通过在模式末尾添加一个随机字符串来生成的。如果模式包含 "*",则随机字符串将替换最后一个 "*"。如果 dir 是空字符串,MkdirTemp 使用默认目录来存放临时文件,如 TempDir 返回的多个程序或 goroutines 同时调用 MkdirTemp 将不会选择相同的目录。当不再需要目录时,调用者有责任将其删除。

例子:

package main

import (
	"log"
	"os"
	"path/filepath"
)

func main() {
	dir, err := os.MkdirTemp("", "example")
	if err != nil {
		log.Fatal(err)
	}
	defer os.RemoveAll(dir) // clean up

	file := filepath.Join(dir, "tmpfile")
	if err := os.WriteFile(file, []byte("content"), 0666); err != nil {
		log.Fatal(err)
	}
}

示例(后缀):

package main

import (
	"log"
	"os"
	"path/filepath"
)

func main() {
	logsDir, err := os.MkdirTemp("", "*-logs")
	if err != nil {
		log.Fatal(err)
	}
	defer os.RemoveAll(logsDir) // clean up

	// Logs can be cleaned out earlier if needed by searching
	// for all directories whose suffix ends in *-logs.
	globPattern := filepath.Join(os.TempDir(), "*-logs")
	matches, err := filepath.Glob(globPattern)
	if err != nil {
		log.Fatalf("Failed to match %q: %v", globPattern, err)
	}

	for _, match := range matches {
		if err := os.RemoveAll(match); err != nil {
			log.Printf("Failed to remove %q: %v", match, err)
		}
	}
}

相关用法


注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 MkdirTemp。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。