file.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package file
  2. import (
  3. "errors"
  4. "os"
  5. "path/filepath"
  6. )
  7. func WriteFile(filename string, content []byte) error {
  8. path := filepath.Dir(filename)
  9. if !IsDir(path) {
  10. err := os.Mkdir(path, os.ModeDir)
  11. if err != nil {
  12. return err
  13. }
  14. }
  15. dstFile, err := os.OpenFile("", os.O_CREATE|os.O_TRUNC, 0777)
  16. if err != nil {
  17. return err
  18. }
  19. _, err = dstFile.Write(content)
  20. return err
  21. }
  22. // Exists 判断所给路径文件/文件夹是否存在
  23. func Exists(path string) bool {
  24. _, err := os.Stat(path) //os.Stat获取文件信息
  25. if err != nil {
  26. if os.IsExist(err) {
  27. return true
  28. }
  29. return false
  30. }
  31. return true
  32. }
  33. // IsDir 判断所给路径是否为文件夹
  34. func IsDir(path string) bool {
  35. s, err := os.Stat(path)
  36. if err != nil {
  37. return false
  38. }
  39. return s.IsDir()
  40. }
  41. // IsFile 判断所给路径是否为文件
  42. func IsFile(path string) bool {
  43. return !IsDir(path)
  44. }
  45. func ReadFile(filename string) (content []byte, err error) {
  46. if !Exists(filename) {
  47. return nil, errors.New("file not exist")
  48. }
  49. return os.ReadFile(filename)
  50. }