file.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package file
  2. import (
  3. "fmt"
  4. "io/ioutil"
  5. "mime/multipart"
  6. "os"
  7. "path"
  8. )
  9. func GetSize(f multipart.File) (int, error) {
  10. content, err := ioutil.ReadAll(f)
  11. return len(content), err
  12. }
  13. func GetExt(fileName string) string {
  14. return path.Ext(fileName)
  15. }
  16. func CheckNotExist(src string) bool {
  17. _, err := os.Stat(src)
  18. return os.IsNotExist(err)
  19. }
  20. func CheckPermission(src string) bool {
  21. _, err := os.Stat(src)
  22. return os.IsPermission(err)
  23. }
  24. func IsNotExistMkDir(src string) error {
  25. if notExist := CheckNotExist(src); notExist == true {
  26. if err := MkDir(src); err != nil {
  27. return err
  28. }
  29. }
  30. return nil
  31. }
  32. func MkDir(src string) error {
  33. err := os.MkdirAll(src, os.ModePerm)
  34. if err != nil {
  35. return err
  36. }
  37. return nil
  38. }
  39. func Open(name string, flag int, perm os.FileMode) (*os.File, error) {
  40. f, err := os.OpenFile(name, flag, perm)
  41. if err != nil {
  42. return nil, err
  43. }
  44. return f, nil
  45. }
  46. func MustOpen(fileName, filePath string) (*os.File, error) {
  47. dir, err := os.Getwd()
  48. if err != nil {
  49. return nil, fmt.Errorf("os.Getwd err: %v", err)
  50. }
  51. src := dir + "/" + filePath
  52. perm := CheckPermission(src)
  53. if perm == true {
  54. return nil, fmt.Errorf("file.CheckPermission Permission denied src: %s", src)
  55. }
  56. err = IsNotExistMkDir(src)
  57. if err != nil {
  58. return nil, fmt.Errorf("file.IsNotExistMkDir src: %s, err: %v", src, err)
  59. }
  60. f, err := Open(src+fileName, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0644)
  61. if err != nil {
  62. return nil, fmt.Errorf("Fail to OpenFile :%v", err)
  63. }
  64. return f, nil
  65. }