zip.h解析

2023-11-19

// 返回值
#define ZIP_OK                          (0)
#define ZIP_EOF                         (0)
#define ZIP_ERRNO                       (Z_ERRNO)
#define ZIP_PARAMERROR                  (-102)
#define ZIP_BADZIPFILE                  (-103)
#define ZIP_INTERNALERROR               (-104)

// 压缩等级
#ifndef DEF_MEM_LEVEL
#  if MAX_MEM_LEVEL >= 8
#    define DEF_MEM_LEVEL 8
#  else
#    define DEF_MEM_LEVEL  MAX_MEM_LEVEL
#  endif
#endif

// zip文件修改/保存时间的结构体tm_zip
// 注意月的取值范围是[0-11]
typedef struct tm_zip_s
{
	uInt tm_sec;            // 秒
	uInt tm_min;            // 分
	uInt tm_hour;           // 时
	uInt tm_mday;           // 天
	uInt tm_mon;            // 月
	uInt tm_year;           // 年,范围[1980,2044]
} tm_zip;

// zip的信息结构体zip_fileinfo
typedef struct
{
	tm_zip      tmz_date;       // 文件的上次修改/保存时间
	uLong       dosDate;        // dos格式时间。设为0即可
	uLong       internal_fa;    // 内部文件属性
	uLong       external_fa;    // 外部文件属性
} zip_fileinfo;

typedef const char* zipcharpc;


#define APPEND_STATUS_CREATE        (0)	//创建新文件
#define APPEND_STATUS_CREATEAFTER   (1) 	//在已有zip文件后追加(无视密码?)
#define APPEND_STATUS_ADDINZIP      (2) 	//在已有zip文件中添加
// 不存在从zip中删除子文件的操作。若有此需求,需要创建新的zip

// 创建/打开一个zip文件。执行压缩操作必须首先调用此函数
extern zipFile ZEXPORT zipOpen OF((const char *pathname, int append));


// 创建/打开zip文件中的一个子文件,将其设为当前文件,以用于后续的写入操作。
extern int ZEXPORT zipOpenNewFileInZip OF((
	zipFile file,					// zip文件
	const char* filename, 			// zip中需要写入的子文件的文件名
	const zip_fileinfo* zipfi,		// 传入一些包括日期在内的zip补充信息
	const void* extrafield_local,		// 本子文件扩展信息
	uInt size_extrafield_local,		// 本子文件扩展信息大小
	const void* extrafield_global, 	// 全局文件扩展信息
	uInt size_extrafield_global, 		// 全局文件扩展信息大小
	const char* comment,				// 注释			
	int method,						// 压缩方式:0-store,ZDEFLATED-deflate
	int level						// 压缩等级:[0,9]。详见下面说明
	));

// 压缩等级
#define Z_NO_COMPRESSION         0
#define Z_BEST_SPEED             1
#define Z_BEST_COMPRESSION       9
#define Z_DEFAULT_COMPRESSION  (-1)	// 默认取值


// 向打开的当前文件中写入数据
extern int ZEXPORT zipWriteInFileInZip OF((zipFile file,
	const void* buf,
	unsigned len));

// 关闭打开的当前文件
extern int ZEXPORT zipCloseFileInZip OF((zipFile file));

extern int ZEXPORT zipCloseFileInZipRaw OF((zipFile file,
	uLong uncompressed_size,
	uLong crc32));
/*
Close the current file in the zipfile, for file opened with
parameter raw=1 in zipOpenNewFileInZip2
uncompressed_size and crc32 are value for the uncompressed size
*/

// 关闭zip文件。压缩完成
extern int ZEXPORT zipClose OF((zipFile file,
	const char* global_comment));

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

zip.h解析 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C 函数 time() 如何处理秒的小数部分?

    The time 函数将返回自 1970 年以来的秒数 我想知道它如何对返回的秒数进行舍入 例如 对于100 4s 它会返回100还是101 有明确的定义吗 ISO C标准没有说太多 它只说time 回报 该实现对当前日历时间的最佳近似 结
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • [JAVA]将Set转换成int[]数组

    今天在写练习的时候 碰到了方法的返回值为int 可我却使用的是HashSet来实现 想return发现类型对不上的问题 于是尝试了toArray方法 但toArray方法返回的是Object类或者是一个包装类 就找到了这个set转换成int
  • 动态一键换肤实现思路和demo

    前言 浏览器切换样式无非是通过css 总共有以下三种方法 内联style 注入style 注入link 那么我们想要实现一键换肤 那么我们为了剥离干净dom和css 我们只能选择style和link这两种方法 核心思路 在html的head
  • Java反射机制和线程

    JAVA反射机制 已经加载过这个类 通过类名来找到这个类的所有相关信息 在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的成员变量和方法 生成动态代理 反
  • 远程桌面dos开启

    lt DOCTYPE html PUBLIC WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml strictdtd gt 注册表内容 Windows Registry Editor Versio
  • 用 Java 实现的八种常用排序算法

    八种排序算法可以按照如图分类 前置知识 1 算法稳定性 在一个序列中 能保证两个相等的数 经过排序之后 其在序列的前后位置顺序不变 A1 A2 排序前 A1 在 A2 前面 排序后 A1 还在 A2 前面 2 时间复杂度 时间复杂度是用于衡
  • Sublimewebinspector 断点不能打上的解决方法

    最近老大在sublime上开发出了我们产品的开发包 这个开发包能像ZenCoding一样快速打出前端代码 这样开发者用我们产品的概率就大多了 但是对于产品中的js代码 现在还没有很好的工具 搬砖的我小有雄心壮志的想给我们的产品开发一个JS代
  • 生成专题4

    文章转自微信公众号 机器学习炼丹术 作者 陈亦新 欢迎交流共同进步 联系方式 微信cyx645016617 学习论文 Analyzing and Improving the Image Quality of StyleGAN 文章目录 4
  • vue学习语法校验笔记总结

    vue语法校验需要安装eslint plugins vue插件 插件安装完成后 进入 插件配置 即可找到刚才安装插件 它的对应的配置文件是 eslintrc js 选项对应说明如下 module exports extends plugin
  • ES6之Map和Set有什么不同?

    一 Map 1 定义 Map是ES6提供的一种新的数据结构 它是键值对的集合 类似于对象 但是键的范围不限于字符串 各种类型的值都可以当做键 Object结构是 字符串 值 的对应 Map结构则是 值 值 的对应 2 代码示例 Map本身是
  • Mybatis的注解方式开发

    目录 一 环境搭建与测试 二 注解方式的单表CRUD 三 注解方式的复杂关系映射 属性与列的对应关系 多表查询 一对一 一对多 四 注解方式使用二级缓存 前面的文章使用的都是XML配置的方式进行开发 当然 Mybatis也可以使用注解的方式
  • c++ for循环的新写法

    for循环遍历一个数组 string类 vector类等 老写法 include
  • gzip压缩的json文件在谷歌浏览器(chrome)中可以正常解析,但是在safari浏览器乱码

    gzip压缩的json文件在谷歌浏览器 chrome 中可以正常解析 但是在safari浏览器乱码 挺奇怪的一个问题 json数据通过gzip压缩之后 axios接收到的数据在chrome中是正常的 但是在safari中却是乱码 文件流 后
  • jsp页面中获取参数值

    1 GET方法用根据URL获取参数值 1 1 jsp页面 1 2 3 6 7 8 9 10
  • oracle 不完整恢复,Oracle——不完全恢复

    不完全恢复分为用户不完全恢复和RMAN不完全恢复 若联机重做日志文件或者归档日志文件有丢失 则只能进行不完全恢复 一 不完全恢复的分类 1 time recover选项 指定恢复到某个时间点 常用 2 cancel recover选项 停止
  • buuctf - crypto - Rabbit

    rabbit 加解密 在线Rabbit加密 Rabbit解密 在线工具
  • 把路由器设置为交换机或者二级路由设置联网

    五台电脑用了一个路由 还有一台没有连上 结果又买了一个路由 问问能把剩下的电脑接上吗 该怎么接法 1 做二级路由 把第二個路由器作为二级路由用 接线的方法就像你接第一个主路由器那样 从第一个路由器LAN口出来的一条网线接在第二个路由器的WA
  • 姿态估计之2D人体姿态估计 - (OpenPose) Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields

    参见 论文翻译 openpose magic ll的博客 CSDN博客 OpenPose论文解读 知乎 Openpose论文阅读 jmucvm的博客 CSDN博客 openpose论文总结 htt789的博客 CSDN博客 OpenPifP
  • ELK配置记录(filebeat+kafka+Logstash+Elasticsearch+Kibana)

    一 简介 elk日志平台 日志收集 分析和展示的解决方案 满足用户对 志的查询 排序 统计需求 elk架构 filebeat 采集 kafka Logstash 管道 Elasticsearch 存储 搜索 Kibana 日志应用 各组件功
  • 离散仿真引擎基础作业与练习

    作业内容 一 简答题 1 解释 GameObjects 和 Assets 的区别与联系 2 下载几个游戏案例 分别总结资源 对象组织的结构 3 使用 debug 验证 MonoBehaviour 基本行为或事件触发条件 4 了解 GameO
  • zip.h解析

    返回值 define ZIP OK 0 define ZIP EOF 0 define ZIP ERRNO Z ERRNO define ZIP PARAMERROR 102 define ZIP BADZIPFILE 103 define