CopyFile File copies a single file from src to dst
(src, dst string)
| 17 | |
| 18 | // CopyFile File copies a single file from src to dst |
| 19 | func CopyFile(src, dst string) error { |
| 20 | var err error |
| 21 | var srcfd *os.File |
| 22 | var dstfd *os.File |
| 23 | var srcinfo os.FileInfo |
| 24 | |
| 25 | if srcfd, err = os.Open(src); err != nil { |
| 26 | return err |
| 27 | } |
| 28 | defer srcfd.Close() |
| 29 | |
| 30 | if dstfd, err = CreateNestedFile(dst); err != nil { |
| 31 | return err |
| 32 | } |
| 33 | defer dstfd.Close() |
| 34 | |
| 35 | if _, err = CopyWithBuffer(dstfd, srcfd); err != nil { |
| 36 | return err |
| 37 | } |
| 38 | if srcinfo, err = os.Stat(src); err != nil { |
| 39 | return err |
| 40 | } |
| 41 | return os.Chmod(dst, srcinfo.Mode()) |
| 42 | } |
| 43 | |
| 44 | // CopyDir Dir copies a whole directory recursively |
| 45 | func CopyDir(src, dst string) error { |
no test coverage detected