u_file.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package util
  2. import (
  3. "io"
  4. "os"
  5. "path/filepath"
  6. )
  7. func ReadFile(filePath string) (string, error) {
  8. // 1 打开文件
  9. file, err := os.Open(filePath)
  10. if err != nil {
  11. return "", err
  12. }
  13. defer file.Close()
  14. // 2 读取文件内容
  15. content, err := io.ReadAll(file)
  16. if err != nil {
  17. return "", err
  18. }
  19. return string(content), err
  20. }
  21. func RemoveFile(path string) error {
  22. // 检查文件是否存在
  23. if _, err := os.Stat(path); err == nil {
  24. // 文件存在,执行删除操作
  25. err = os.Remove(path)
  26. if err != nil {
  27. return err
  28. }
  29. }
  30. return nil
  31. }
  32. func WriteFile(sourceContent string, targetFilePath string) error {
  33. if err := CreateFile(targetFilePath); err != nil {
  34. return err
  35. }
  36. if err := os.WriteFile(targetFilePath, []byte(sourceContent), 0644); err != nil {
  37. return err
  38. }
  39. return nil
  40. }
  41. // CreateFile 存在则覆盖,不存在则创建文件
  42. func CreateFile(filePath string) error {
  43. if err := CreateParentDir(filePath); err != nil {
  44. return err
  45. }
  46. // 创建文件,如果文件已存在则覆盖
  47. file, err := os.Create(filePath)
  48. if err != nil {
  49. return err
  50. }
  51. defer func(file *os.File) {
  52. err := file.Close()
  53. if err != nil {
  54. }
  55. }(file)
  56. return nil
  57. }
  58. // CreateParentDir 存在不创建,不存在则创建父目录
  59. func CreateParentDir(filePath string) error {
  60. if err := os.MkdirAll(filepath.Dir(filePath), os.ModePerm); err != nil {
  61. return err
  62. }
  63. return nil
  64. }