1// Copyright 2010 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package ioutil
6
7import (
8	"os"
9)
10
11// TempFile creates a new temporary file in the directory dir,
12// opens the file for reading and writing, and returns the resulting *[os.File].
13// The filename is generated by taking pattern and adding a random
14// string to the end. If pattern includes a "*", the random string
15// replaces the last "*".
16// If dir is the empty string, TempFile uses the default directory
17// for temporary files (see [os.TempDir]).
18// Multiple programs calling TempFile simultaneously
19// will not choose the same file. The caller can use f.Name()
20// to find the pathname of the file. It is the caller's responsibility
21// to remove the file when no longer needed.
22//
23// Deprecated: As of Go 1.17, this function simply calls [os.CreateTemp].
24func TempFile(dir, pattern string) (f *os.File, err error) {
25	return os.CreateTemp(dir, pattern)
26}
27
28// TempDir creates a new temporary directory in the directory dir.
29// The directory name is generated by taking pattern and applying a
30// random string to the end. If pattern includes a "*", the random string
31// replaces the last "*". TempDir returns the name of the new directory.
32// If dir is the empty string, TempDir uses the
33// default directory for temporary files (see [os.TempDir]).
34// Multiple programs calling TempDir simultaneously
35// will not choose the same directory. It is the caller's responsibility
36// to remove the directory when no longer needed.
37//
38// Deprecated: As of Go 1.17, this function simply calls [os.MkdirTemp].
39func TempDir(dir, pattern string) (name string, err error) {
40	return os.MkdirTemp(dir, pattern)
41}
42