如何使用zip作为数据的容器
How I can use a zip as a container for my data?
我经常遇到有zip签名的文件类型,但它们不是压缩档案,或者根本不是zip文件;通常,签名中的一些文件看起来像压缩的档案,但实际上它们只是自定义数据集的容器。
例如.blend文件或.apk可以使用归档实用程序打开。
使用编程方法,我如何创建自己的新文件类型定义,避免创建新文件类型和使用zip作为容器的所有复杂部分?
我对C/C++编程感兴趣。
编辑:
我还想强调一个事实,我谈论容器是为了避免与平台相关的问题,比如编码和数据表示。
我怀疑你在问如何创建一个完全类似于具有不同文件扩展名的zip文件(例如,afaik是.APK文件使用的策略)。
相当简单的答案是,您完全按照其他方式创建其中一个,并使用具有自己扩展名的文件名。正如评论中提到的,有各种库可以用来创建和处理zip文件。
这个文件(像APK一样)可以在归档实用程序中打开,但默认情况下与系统上的一些其他操作关联(因为APK与安装关联,.blend与搅拌机关联)。
这种技术非常常见,许多常见的应用程序文件格式只不过是文件的压缩集合和一些标准索引文件,这些文件显示了它们是如何组合在一起的。
另请注意@Jan Hudec关于编码问题的评论——通过这条路线无法逃脱。
关于编码:(我建议你就这些问题问一个新的、不同的问题——这里的许多人比我有更多的实践知识)您提到您希望在潜在的异构系统上获得完全相同的数据。我认为你必须使用文本编码:在不同的系统上编译C代码后,无法保证类型长度、对齐方式或表示方式是相同的,因此简单地写出二进制Blob不是很可靠。。在为文本编码选择字符集时,请尽可能具体,以便在其他系统上准确匹配字符集。
相关文章:
- sd_journal_send发送二进制数据.如何使用日志检索数据?
- 我们可以从 TXT 文件中读取数据并使用 C 和 C++ 将其保存到 SQL 数据库吗?
- Windows 上的 Clang/LLVM 7 和 8 多次初始化内联静态数据成员(使用 link.exe 和 lld-
- 分析和数据处理 使用点云库的 las 文件
- C++ 从文件中获取数据时使用 strcpy 和 strcmp 按字母顺序对数组进行排序?
- curl发送JSON数据不使用C 工作
- 剪贴板数据上使用的全局大小函数会导致错误
- 插座无法接收数据?客户使用boost.asyio库编写.服务器用Python编写
- 如何在以下C程序中计算运行时间内存和最大数据存储器使用情况
- 为什么文件上传在发送几个数据块(使用多部分/表单数据)后停止?
- C :如何使用相同的数据类使用不同的方法实现
- 默认情况下,使 std 的数据结构使用我现有的非静态哈希函数"hashCode()"
- 名称和伪ID的数据结构:使用哈希表或bst
- 如何在cv :: cuda :: ptrstepszf数据上使用线性索引
- 如何将unique_ptr与 c 库中分配的数据一起使用
- 是否应该对复杂数据类型使用访问器
- Windows的unicode数据类型使用什么unicode编码(UTF-8、UTF-16等)
- 为什么我不能从输入文件中检索简单数据并使用C++将其写入输出文件?
- 在浏览器中呈现数据之前,是否可以拦截http请求并修改数据(例如使用regex替换内容)?如果是,如何
- 如何在二维数组中存储数据并使用2个循环显示二维