1、文件拷贝:

package main

import (
	"fmt"
	"io"
	"os"
	"strings"
)

func main() {
	list := os.Args

	if len(list) != 3 {
		fmt.Println("输入给谁错误,格式为:xxx.go 源文件名 目标文件名")
		return
	}
	fmt.Println("源文件路径:", list[1], " ", "目标文件路径为:", list[2])
	fmt.Println("请确认按Yy继续:")
	str := ""
	fmt.Scanln(&str)
	if strings.ToLower(str) == "y" {
		w, err := CopyFile(list[1], list[2])
		if err != nil {
			fmt.Println(err)
			return
		}
		fmt.Println("复制文件完成,文件大小为:", w)
	} else {
		fmt.Println("用户终止操作!")
	}

}

func CopyFile(srcFileName, dstFileName string) (written int64, err error) {
	srcFile, err := os.Open(srcFileName)
	if err != nil {
		return
	}
	defer srcFile.Close()
	dstFile, err := os.OpenFile(dstFileName, os.O_WRONLY|os.O_CREATE, 0644)
	if err != nil {
		return
	}
	defer dstFile.Close()
	return io.Copy(dstFile, srcFile)
}

执行结果:

d:\goprojects\src\day1\练习>go run main.go d:\深入理解并行编程V1.0.pdf d:\test.pdf
源文件路径: d:\深入理解并行编程V1.0.pdf   目标文件路径为: d:\test.pdf
请确认按Yy继续:
y
复制文件完成,文件大小为: 4146835

d:\goprojects\src\day1\练习>go run main.go d:\深入理解并行编程V1.0.pdf d:\test.pdf
源文件路径: d:\深入理解并行编程V1.0.pdf   目标文件路径为: d:\test.pdf
请确认按Yy继续:
n
用户终止操作!

d:\goprojects\src\day1\练习>