123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package fs
- import (
- "io/ioutil"
- "os"
- "github.com/tal-tech/go-zero/core/hash"
- )
- // TempFileWithText creates the temporary file with the given content,
- // and returns the opened *os.File instance.
- // The file is kept as open, the caller should close the file handle,
- // and remove the file by name.
- func TempFileWithText(text string) (*os.File, error) {
- tmpfile, err := ioutil.TempFile(os.TempDir(), hash.Md5Hex([]byte(text)))
- if err != nil {
- return nil, err
- }
- if err := ioutil.WriteFile(tmpfile.Name(), []byte(text), os.ModeTemporary); err != nil {
- return nil, err
- }
- return tmpfile, nil
- }
- // TempFilenameWithText creates the file with the given content,
- // and returns the filename (full path).
- // The caller should remove the file after use.
- func TempFilenameWithText(text string) (string, error) {
- tmpfile, err := TempFileWithText(text)
- if err != nil {
- return "", err
- }
- filename := tmpfile.Name()
- if err = tmpfile.Close(); err != nil {
- return "", err
- }
- return filename, nil
- }
|