gfile.go 662 B

123456789101112131415161718192021222324252627282930313233343536
  1. package gfile
  2. import (
  3. "fmt"
  4. "gbase/glog"
  5. "io"
  6. "os"
  7. )
  8. func CopyFile(src, dst string) (err error) {
  9. f1, err := os.Open(src)
  10. if err != nil {
  11. glog.XWarning(fmt.Sprintf("Open %v error : %v\n", src, err))
  12. return
  13. }
  14. defer f1.Close()
  15. f2, err := os.Create(dst)
  16. if err != nil {
  17. glog.XWarning(fmt.Sprintf("Create %v error : %v\n", dst, err))
  18. return
  19. }
  20. defer f2.Close()
  21. _, err = io.Copy(f2, f1)
  22. if err != nil {
  23. glog.XWarning(fmt.Sprintf("Copy %v error : %v\n", dst, err))
  24. return
  25. }
  26. srcInfo, err := f1.Stat()
  27. if err != nil {
  28. glog.XWarning(fmt.Sprintf("Stat %v error : %v\n", src, err))
  29. return
  30. }
  31. os.Chmod(dst, srcInfo.Mode())
  32. return nil
  33. }