go代码携带附件,以及使用7z压缩解压,windows下自动安装7za可执行程序

jan-bar · · 1755 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

# [点击跳转github地址](https://github.com/jan-bar/addFileToGo) # addFileToGo 说明 该可执行程序用来将文件添加到go代码中,使go可执行程序能携带文件. go run addFileToGo.go a.txt b.txt c.txt 会产生resources.go文件,只需要添加到项目目录按照如下用法就可以还原文件. go run main.go resources.go即可释放几个文件到指定目录. ```go package main func main() { // 如下方法,当文件不存在或大小不正确,则会重新释放文件 WriteBytesToFile("D:\\a.txt", "a.txt") WriteBytesToFile("D:\\b.txt", "b.txt") WriteBytesToFile("D:\\c.txt", "c.txt") } ``` # 执行7za命令 ```go package main import ( "github.com/jan-bar/addFileToGo/SevenZip" ) func main() { // windows不存在7za.exe,自动创建7za.exe到环境变量,下次启动直接使用环境变量的7za.exe // windows下只传一个参数,则直接使用该命令行,不会拆分成[]string类型 // 如果命令行里面有引号括起来的空格参数是没有问题的,这种写法只支持windows SevenZip.Command("a xx.7z a.log b.txt").Output() // Linux下7za命令不存在直接报panic错误 // 下面这种则是默认exec.Command那种方式,windows和linux下均相同 SevenZip.Command("a", "xx.7z", "a.log", "b.txt").Output() // 之所以windows和Linux有所不同,看源码吧,我只是比较懒,不想处理Linux下的逻辑. } ``` # 两个结合起来用 1. 使用7za命令将多个文件压缩成一个文件,使用addFileToGo将文件写入go代码 2. 使用go代码释放文件,使用7za命令行解压即可 # 总结 1. 之所以7za没有做成复杂的封装好的方法,是因为提供基础方法使用灵活,还有懒. 2. 写这个也主要是平时我写的程序需要携带文件,避免使用者那边没有必要文件.

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1755 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传