可以通过 io.Copy 函数来复制文件
package main
import (
"io"
"os"
)
func main() {
dst, err := os.OpenFile("./dst.txt", os.O_RDWR|os.O_CREATE, 07777)
if err == nil {
reader, err := os.Open("./test.txt")
if err == nil {
res, err := io.Copy(dst, reader)
if err == nil {
println(res)
} else {
println(err.Error())
}
}
reader.Close()
}
dst.Close()
}
1 目标文件句柄 ( 创建 + 读写模式 )
2 源文件句柄 ( 可读模式 )
package main
import (
"io"
"os"
)
func copy(dstFile string, src string) (bool, string) {
// 打开源文件
reader, err := os.Open(src)
defer reader.Close()
if err == nil {
// 创建拷贝文件
dst, errCopyOpen := os.OpenFile(dstFile, os.O_CREATE|os.O_RDWR, 0777)
defer dst.Close()
if errCopyOpen == nil {
_, errCopy := io.Copy(dst, reader)
if errCopy == nil {
return true, ""
} else {
return false, errCopy.Error()
}
}
return false, errCopyOpen.Error()
}
return false, err.Error()
}
func main() {
res, err := copy("./d.log", "./test.txt")
if res {
println("复制成功")
} else {
println("复制失败 : ", err)
}
}