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 }