file_utils.go 498 B

123456789101112131415161718192021222324252627282930
  1. package utils
  2. import (
  3. "crypto/md5"
  4. "encoding/hex"
  5. "io"
  6. "os"
  7. "strings"
  8. )
  9. // 获取文件MD5码
  10. func GetFileMD5(fileName string) (string, error) {
  11. fileName = strings.TrimSpace(fileName)
  12. if fileName == "" {
  13. return "", nil
  14. }
  15. f, err := os.Open(fileName)
  16. if err != nil {
  17. return "", err
  18. }
  19. defer func(f *os.File) {
  20. _ = f.Close()
  21. }(f)
  22. md5Encoder := md5.New()
  23. _, err = io.Copy(md5Encoder, f)
  24. if err != nil {
  25. return "", err
  26. }
  27. return hex.EncodeToString(md5Encoder.Sum(nil)), nil
  28. }