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


GO TempDir用法及代码示例

GO语言"io/ioutil"包中"TempDir"函数的用法及代码示例。

用法:

func TempDir(dir, pattern string)(name string, err error)

TempDir 在目录 dir 中创建一个新的临时目录。目录名称是通过采用模式并在末尾应用随机字符串来生成的。如果模式包含"*",则随机字符串替换最后的"*"。 TempDir 返回新目录的名称。如果 dir 是空字符串,TempDir 使用临时文件的默认目录(参见 os.TempDir)。多个程序同时调用TempDir 不会选择同一个目录。不再需要时删除目录是调用者的责任。

从 Go 1.17 开始,此函数仅调用 os MkdirTemp

例子:

package main

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

func main() {
    content := []byte("temporary file's content")
    dir, err := ioutil.TempDir("", "example")
    if err != nil {
        log.Fatal(err)
    }

    defer os.RemoveAll(dir) // clean up

    tmpfn := filepath.Join(dir, "tmpfile")
    if err := ioutil.WriteFile(tmpfn, content, 0666); err != nil {
        log.Fatal(err)
    }
}

示例(后缀):

package main

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

func main() {
    parentDir := os.TempDir()
    logsDir, err := ioutil.TempDir(parentDir, "*-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(parentDir, "*-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大神的英文原创作品 TempDir。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。