| 123456789101112131415161718192021222324252627282930313233343536 |
- package gfile
- import (
- "fmt"
- "gbase/glog"
- "io"
- "os"
- )
- func CopyFile(src, dst string) (err error) {
- f1, err := os.Open(src)
- if err != nil {
- glog.XWarning(fmt.Sprintf("Open %v error : %v\n", src, err))
- return
- }
- defer f1.Close()
- f2, err := os.Create(dst)
- if err != nil {
- glog.XWarning(fmt.Sprintf("Create %v error : %v\n", dst, err))
- return
- }
- defer f2.Close()
- _, err = io.Copy(f2, f1)
- if err != nil {
- glog.XWarning(fmt.Sprintf("Copy %v error : %v\n", dst, err))
- return
- }
- srcInfo, err := f1.Stat()
- if err != nil {
- glog.XWarning(fmt.Sprintf("Stat %v error : %v\n", src, err))
- return
- }
- os.Chmod(dst, srcInfo.Mode())
- return nil
- }
|