当前位置: 首页 > news >正文

go中拷贝文件操作

一. 拷贝文件内容到另一个文件位置

// 拷贝文件内容到另一个文件里面
func copyContent() {filepath1 := "d:/abc.txt"filepath2 := "e:/eee.txt"// 读取内容data, err := os.ReadFile(filepath1) // 使用os.ReadFile函数读取指定路径的文件内容if err != nil {fmt.Println("read file wrong:", err) // 若读取文件出错,则打印错误信息return}fmt.Println("读取数据是:", string(data)) // 打印读取到的数据(转换为字符串形式)// 写入内容err = os.WriteFile(filepath2, data, 0666) // 使用os.WriteFile函数将指定路径的文件写入内容if err != nil {fmt.Println("write file wrong:", err) // 若写入文件出错,则打印错误信息return}fmt.Println("操作完成") // 操作完成提示
}

二. 判断文件是否存在

// PathExists 函数接受一个文件路径并返回两个值:一个布尔值和一个错误。
// 它用于判断指定路径的文件或目录是否存在。
func PathExists(filepath string) (bool, error) {// 使用 os.Stat 函数获取文件或目录的状态信息。// os.Stat 返回两个值:一个 FileInfo 类型的 fileInfo 和一个错误值 err。// 如果文件不存在,os.Stat 将返回一个错误。fileInfo, err := os.Stat(filepath)// 打印 fileInfo 和 err 的值。fmt.Println(fileInfo, err)// 如果 err 为 nil,表示没有错误发生,文件或目录存在。// 在这种情况下,函数返回 true 和 nil(表示没有错误)。if err == nil {return true, nil}// 使用 os.IsNotExist 函数检查错误是否因为文件或目录不存在。// 如果是因为文件或目录不存在而出错,os.IsNotExist 将返回 true。// 在这种情况下,函数返回 false 和 nil(表示没有错误,只是文件不存在)。if os.IsNotExist(err) {return false, nil}// 如果出现了其他类型的错误(不是文件不存在的错误),// 函数返回 false 和实际发生的错误。return false, err
}

三. 拷贝文件(图片、视频)

// CopyFile 函数用于拷贝一个文件到另一个文件
func CopyFile(distFileName string, srcFileName string) (written int64, err error) {// 打开源文件// os.Open 方法打开指定路径的源文件srcFile, err := os.Open(srcFileName)if err != nil {// 如果出现错误,打印错误信息并继续执行fmt.Println("open source file error:", err)}defer srcFile.Close()// 创建一个读取器,从源文件中读取内容reader := bufio.NewReader(srcFile)// 打开目标文件,模式为写入并创建(如果不存在),权限为 666disFile, err := os.OpenFile(distFileName, os.O_WRONLY|os.O_CREATE, 0666)if err != nil {// 如果出现错误,打印错误信息并返回fmt.Println("open destination file error:", err)return}defer disFile.Close()// 创建一个写入器,向目标文件写入内容writer := bufio.NewWriter(disFile)// 使用 io.Copy 方法将源文件的内容复制到目标文件中written, err = io.Copy(writer, reader)return // 返回已写入字节数和可能发生的错误
}

四. 测试

package mainimport ("bufio""fmt""io""os"
)func main() {//copyContent()//println(PathExists(filepath1))dis := "e:/666.png"src := "c:/users/coderyeah/desktop/welt.jpg"written, err := CopyFile(dis, src)if err != nil {fmt.Println(err)return}fmt.Println("copy字节数:", written)fmt.Println("执行完成")
}
http://www.lryc.cn/news/281106.html

相关文章:

  • 未来气膜体育馆的发展趋势是什么?
  • 通信扫盲(五)
  • nbcio-boot项目的文件上传与回显处理方法
  • 《动手学深度学习》学习笔记 第9章 现代循环神经网络
  • 「HDLBits题解」Vector100r
  • 如何制作专业商业画册,提升品牌形象
  • vim升级和配置
  • java通过okhttp方式实现https请求的工具类(绕过证书验证)
  • mysql定时备份shell脚本和还原
  • DevOps搭建(十六)-Jenkins+K8s部署详细步骤
  • WaitForSingleObject 函数的诸多用途与使用场景总结
  • 4、Redis高并发分布式锁实战
  • matlab subs 函数计算太慢
  • 如何确保网络传输的安全性和稳定性?
  • 鸿蒙应用开发学习:改进小鱼动画实现按键一直按下时控制小鱼移动和限制小鱼移出屏幕
  • 紫光展锐5G扬帆出海 | Blade系列勇当拉美5G先锋
  • 如何设计一个高并发系统?
  • 基于WebRTC技术的EasyRTC视频云服务系统在线视频客服解决方案
  • 黑马程序员——2022版软件测试——乞丐版——day04
  • uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -创建图文投票实现
  • Spring系列学习九、Spring MVC的使用
  • 开源内容管理系统Wagtail本地安装运行并结合内网穿透实现公网访问
  • 【蓝桥杯/DFS】路径之谜 (Java)
  • Go语言的内存分配器
  • Swift单元测试Quick+Nimble
  • 详解电源动态响应的测试方法及重要性 -纳米软件
  • 计算机网络系统结构-2020期末考试解析
  • 二叉树的遍历 Java
  • 数据结构之str类
  • Java电影购票小程序在线选座订票电影