Go语言通过指令的方式拷贝文件
2016-09-20 22:29
399 查看
package main import ( "bufio" "flag" "fmt" "io" "os" "strings" ) func fileExists(fileName string) bool { _, err := os.Stat(fileName) return err == nil || os.IsExist(err) } func copyFile(src, dst string) (w int64, err error) { srcFile, err := os.Open(src) if err != nil { return } defer srcFile.Close() dstFile, err := os.Create(dst) if err != nil { fmt.Println(err.Error()) return } defer dstFile.Close() return io.Copy(dstFile, srcFile) } func copyFileAction(src, dst string, showProgress, force bool) { if !force { if fileExists(dst) { fmt.Printf("%s exists override? y/n\n", dst) reader := bufio.NewReader(os.Stdin) data, _, _ := reader.ReadLine() if strings.TrimSpace(string(data)) != "y" { return } } } copyFile(src, dst) } func main() { var showProgress, force bool flag.BoolVar(&force, "f", false, "force copy when existing") flag.BoolVar(&showProgress, "v", false, "explain what is being done") flag.Parse() if flag.NArg() < 2 { flag.Usage() return } copyFileAction(flag.Arg(0), flag.Arg(1), showProgress, force) }
相关文章推荐
- Go语言入门教程之Arrays、Slices、Maps、Range操作简明总结
- GO语言异常处理机制panic和recover分析
- go语言执行windows下命令行的方法
- Go语言计算两个经度和纬度之间距离的方法
- Go语言排序与接口实例分析
- Go语言导出内容到Excel的方法
- go语言实现sqrt的方法
- Go语言MessageBox用法实例
- Go语言判断指定文件是否存在的方法
- go语言制作的zip压缩程序
- go语言channel实现多核并行化运行的方法
- Go语言MD5加密用法实例
- go语言使用scp的方法实例分析
- Go语言中的switch用法实例分析
- go语言检测文件是否存在的方法
- Go语言里的结构体文法实例分析
- Go语言结构体定义和使用方法
- Go语言的队列和堆栈实现方法
- Go语言实现Fibonacci数列的方法
- go语言里包的用法实例