go 语言实现文件复制

本文介绍了如何使用Go语言进行文件复制。通过设置GOPATH,创建源文件,编写并运行Go代码,实现了文件的便捷复制。Go语言的简洁性和并发优势使得这个过程变得高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

go 语言个人感觉,简洁,实用,强大,从语言层面上实现高并发,适用于高并发的服务器。

看了很多博客,开源项目,文章,自己也开始分享所学的东西分享出来,后续将推出更多的go语言博客,希望go语言应用更广泛,可以帮助更多的人。

下面是实现go语言的文件的复制,go语言生成可执行程序,异常的方便。


1. 开发环境

go 

LiteIDE


2. 步骤

2.1 新建目标文件夹,用于存放源文件,我的存放路径 E:\workspaceOfGo\CopyFileMaster\src,存放的格式为E:\工作空间\项目名称\src,src是必须的,所有的go源文件都必须存放在src目录下。


2.1 打开LiteIDE, 设置GOPATH路径

    打开方法,查看->管理GOPATH。直接上图



2.2 在src目录下新建一个CopyFileMain.go

2.3 开始写代码,直接上代码,注释很清楚

package main

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

func main() {
	list := os.Args //获取命令行参数

	if len(list) != 3 {
		fmt.Println("输入参数错误,使用方法:可执行程序 复制源文件 复制目标文件")
	}
	srcFileName := list[1] //原文件名

	dstFileName := list[2] //目标文件名

	if srcFileName == dstFileName {
		fmt.Println("目标文件名与源文件名不能相同")
		return
	}
	//以只读方式打开源文件,并获得源文件Os输出流
	sFile, err := os.Open(srcFileName)
	if err != nil {
		fmt.Println("os.Open err=", err)
		return
	}
	//新建目的文件
	dFile, err1 := os.Create(dstFileName)
	if err1 != nil {
		fmt.Println("os.Create err1 = ", err1)
		return
	}

	//程序结束后关闭文件流
	defer sFile.Close()
	defer dFile.Close()

	//文件的复制,先读取,再写,用for循环,读多少,写多少
	buf := make([]byte, 1024*4) //定义切片类型,方便后面用切片写入读取的数据
	for {
		n, err2 := sFile.Read(buf)
		if err2 != nil {
			fmt.Println("sFile.Read=", err2, "文件读取完毕")
			if err2 == io.EOF { // 文件读取完毕,结束循环
				break
			}
		}
		dFile.Write(buf[:n]) //用切片,读取了多少就写多少
	}
}

2.4 编译运行

    在src目录下打开命令提示符,可以在下面这里右击打开命令提示符,很方便。或者点击shift+鼠标右击,在任何地方可以打开dos命令窗口。



    生成CopyFileMain.exe


运行CopyFileMain.exe,并复制文件夹



运行后结果


复制后结果



2.5 也可以用 go run CopyFileMaster.go pig.jpg dstpig.jpg,是一样的结果





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值