files
simple_backup/internal/copy/copy.go
2025-07-31 16:33:22 +09:00

50 lines
665 B
Go

package copy
import (
"io"
"os"
)
// CopyFile 복사 함수: srcFile → dstFile
func RunCopy(srcFile, dstFile string) error {
src, err := os.Open(srcFile)
if err != nil {
return err
}
defer func(src *os.File) {
err := src.Close()
if err != nil {
}
}(src)
dst, err := os.Create(dstFile)
if err != nil {
return err
}
defer func(dst *os.File) {
err := dst.Close()
if err != nil {
}
}(dst)
_, err = io.Copy(dst, src)
if err != nil {
return err
}
// 원본 파일의 권한을 복사
info, err := os.Stat(srcFile)
if err == nil {
err := os.Chmod(dstFile, info.Mode())
if err != nil {
return err
}
}
return nil
}