249_尚硅谷_拷贝文件(图片视频音频)
1.文件编程应用实例
2.将一张图片_电影_MP3拷贝到另外一个文件下的io代码

package main
import (
"bufio"
"fmt"
"io"
"os"
)
// 自己编写一个函数,接收两个文件路径 srcFileName dstFileName
func CopyFile(dstFileName string, srcFileName string) (written int64, err error) {
srcFile, err := os.Open(srcFileName)
if err != nil {
fmt.Printf("open file err = %v\n", err)
}
defer srcFile.Close()
// 通过srcFile句柄, 获取到 Reader
reader := bufio.NewReader(srcFile)
// 打开dstFileName. 以写的方式打开(os.O_WRONLY), 如果文件不存在则创建文件(os.O_CREATE)
dstFile, err := os.OpenFile(dstFileName, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
fmt.Printf("open file err = %v", err)
return
}
defer dstFile.Close()
// 通过dstFile, 获取到 Writer
writer := bufio.NewWriter(dstFile)
// ! 关键点: 调用io中的copy(目标文件, 原文件)方法
return io.Copy(writer, reader)
}
func main() {
// 将 C:\Users\wxe5szh\OneDrive - Bosch Group\PersonalDrive\task\golang_study\249_尚硅谷_拷贝文件(图片视频音频)\image_folder\abc.jpg 文件
// 拷贝到 C:\Users\wxe5szh\OneDrive - Bosch Group\PersonalDrive\task\golang_study\249_尚硅谷_拷贝文件(图片视频音频)\image_folder_new 下
// * 调用CopyFile 完成文件拷贝
// todo 源文件路径
srcFile := "C:/Users/wxe5szh/OneDrive - Bosch Group/PersonalDrive/task/golang_study/249_尚硅谷_拷贝文件(图片视频音频)/image_folder/abc.jpg"
// todo 目标文件路径
dstFile := "C:/Users/wxe5szh/OneDrive - Bosch Group/PersonalDrive/task/golang_study/249_尚硅谷_拷贝文件(图片视频音频)/image_folder_new/abc.jpg"
_, err := CopyFile(dstFile, srcFile)
if err == nil {
fmt.Printf("File copy is finished")
} else {
fmt.Printf("File copy is failed, err = %v", err)
}
}
3.将一张图片_电影_MP3拷贝到另外一个文件下的io运行结果
浙公网安备 33010602011771号