package utils import "os" // CreateEmptyFile 创建一个固定size大小的空文件 // 如果seek文件失败,则删除文件,并返回错误信息 func CreateEmptyFile(name string, size int64) (f *os.File, err error) { defer func() { if err != nil && f != nil { f.Close() os.Remove(name) } }() f, err = os.OpenFile(name, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0666) if err != nil { return } if _, err = f.Seek(size-1, 0); err != nil { return } _, err = f.Write([]byte{0}) return } func WriteFile(data []byte, filename string) (err error) { defer func() { if err != nil { os.Remove(filename) } }() pi := PathForInfo(filename) if pi.Dir != "" { if err = os.MkdirAll(pi.Dir, 0755); err != nil { return } } f, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0666) if err != nil { return } _, err = f.Write(data) f.Close() return } func PathExists(path string) (bool, error) { _, err := os.Stat(path) if err == nil { return true, nil } if os.IsNotExist(err) { return false, nil } return false, err }