文件复制的思路: 1.命令行的识别形式,命令不可小于三位。copy a b 2.文件拷贝路径的参数不可以原目的地==目的地址 3.源文件打开出错处理 4.目的文件创建出错处理 5.关闭源,关闭目的 6.开始拷贝
package main import ( "fmt" "io" "os" ) func main() { arg := os.Args if len(arg)<3{ fmt.Println("usage:gu run copyFile.go 1.txt 2.txt") return } src,dst := arg[1],arg[2] if src==dst{ fmt.Println("the erro is the copy file is same") return } srcFile,err := os.Open(src) if err != nil{ fmt.Println(err) return } dstFile,err := os.Create(dst) if err != nil{ fmt.Println(err) return } defer srcFile.Close() defer dstFile.Close() //核心处理文件拷贝问题 buf := make([]byte,4*1024) for{ n,err := srcFile.Read(buf) if err != nil{ fmt.Println(err) if err == io.EOF { break } } fmt.Println(n) dstFile.Write(buf[:n]) } }