如需执行需要进入到该文件所在的目录,然后运行如下命令:

go run File.go

代码如下:

package main

import (
	"bufio"
	"fmt"
	"io"
	"os"
)

// CopyFile destPath 目标文件路径 srcPath 源文件路径
func CopyFile(destPath string, srcPath string) (written int64, err error) {
	srcFile, err := os.Open(srcPath)
	if err != nil {
		fmt.Println("打开源文件失败")
	}
	// 关闭流 defer关键字表示该函数结束时调用
	defer srcFile.Close()
	// 打开目标文件 以可写和不存在就创建的方式打开
	destFile, err := os.OpenFile(destPath, os.O_WRONLY|os.O_CREATE, 0666)
	if err != nil {
		fmt.Println("打开目标文件失败")
	}
	// 关闭流 defer关键字表示该函数结束时调用
	defer destFile.Close()
	return io.Copy(bufio.NewWriter(destFile), bufio.NewReader(srcFile))
}

func main() {
	// 源文件
	srcPath := "/Users/anran/Downloads/test_create.txt"
	// 目标文件
	destPath := "/Users/anran/Downloads/test_create_copy.txt"

	// 调用拷贝文件函数
	_, err := CopyFile(destPath, srcPath)

	if err == nil {
		fmt.Println("文件复制成功")
	} else {
		fmt.Println("文件复制失败,err=%v", err)
	}
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注