文件打包
2020-02-03 00:29
120 查看
文件打包
准备
- 开发语言:GOLANG
- 开发工具:LiteIDE
- 开发环境:Windows
- 运行环境:Linux32
需求
将抓拍机拍摄照片和记录信息json文件合成为一个文件: 1.通过内置Linux系统输入命令行提取参数进行打包; -i 目标源文件夹 -o 打包程序文件名 2.解析json中数据进行类型转换,重新编码; 3.在pkg中按字节首先存放json数据,再依次存入png文件二进制数据。
功能模块
1.获取命令行指令; 2.解析json中数据,存入结构体; 3.类型和编码转换; 4.pkg数据写入。
流程图
成功失败失败成功失败成功失败成功开始从指令行获取来源地址和目标文件从json中都去配置信息将json文件中数据依次存放如与C#对应的结构体中文件创建失败创建pkg文件写入pkg文件一次拷贝图片二进制数据放入pkg中创建成功结束数据结构
结构体
结构体字段 | 作用 |
---|---|
SnapFileAttrStruct | 存放字节数据 |
device | 设备信息 |
info | 道路信息 |
xSXX | 限速模式 |
record | 记录信息 |
imgDatetime | 图片时间信息 |
函数
函数名称 | 函数参数 | 函数返回值 | 函数用途 |
---|---|---|---|
main | |||
readConfig | fileName string | v caseJson , err error | 从接送文件中读取数据存入caseJson结构体中 |
stringToUint8 | s string | u uint8 | string类型转换为uint8 |
intToString | i int | s string | int类型转换为string |
memcpy | dst []byte, str string | string赋值给字节数组 | |
memcpyTime | dst []byte, src [8]byte, i int | 8字节数组赋值给字节数组 | |
memcpyByte | dst , src []byte | 字节数组赋值给字节数组 | |
timeTransfer | timestr string | datetime [8]uint8 | 将时间字符串转换为8字节数组-用于图片时间、有效时间 |
copyFile | dest src * os.File , offset int64 | 将图片二进制数据复制到pkg文件中 | |
handleCommandLine | r1 , r2 string | 获取命令行参数 | |
UTF8ToGBK | s []byte | []byte | UTF转换为GBK |
特殊函数
通过首地址指针获取结构体数据
import ( "unsafe" ) dataBytes := (*[长度]byte)(unsafe.Pointer(&snap))
数组越界异常处理
func memcpyByte( dst , src []byte) { defer func(){ recover() }() size := len(src) for i := 0 ; i < size ;i++{ dst[i] = src[i] } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 使用node创建一个服务器,运行vue打包以后的文件
- Android 命令行编译、打包生成apk文件
- Linux中mv重命名作用及打包war压缩文件及分配权限
- Java桌面程序打包成exe可执行文件
- less 强制将css 打包到单个文件中
- Qt实现GUI的二进制文件读写操作(源码分析+工程打包+测试例子)
- apk 文件修改后,重新签名打包不能安装解决办法
- Linux 文件打包压缩常用命令(笔记,搜录自网络和文档)
- Python 打包单文件可执行程序
- java如何打包zip等压缩文件
- 多文件打包压缩、下载类--使用第三方控件ICSharpCode
- Android 如何对apk文件进行反编译以及重新打包签名
- 知识点小结——版本调试——内存分析工具——设备调试流程——打包ipa文件——单例模式
- tar打包文件时提示绝对路径的问题
- pyinstaller打包生成软件运行时出现缺少模块cython_blas的错误(总结就是缺少依赖文件pyd,注意命名规则)
- Visual AssistX 10.6.1837安装文件和破解补丁打包下载
- java jar文件打包成exe(Launch4j使用说明)
- m文件转换为C/C++文件的编译、绘图、参数、打包问题总结
- 文件的压缩、打包与解开介绍
- [置顶] 将不在pom文件中的jar包打包WEB-INF/lib目录下