使用微软的FCI/FDI库进行文件压缩
2006-07-20 11:41:55 来源:WEB开发网FDI包括4个API。
FDICreate 创建 FDI context
FDIIsCabinet 判断是否为CAB压缩文件,是则返回其属性
FDICopy 解压
FDIDestroy 销毁 FDI context HFCI DIAMONDAPI FDICreate(//参数与FCI相应参数差不多
PFNALLOC pfnalloc,
PFNFREE pfnfree,
PFNOPEN pfnopen,
PFNREAD pfnread,
PFNWRITE pfnwrite,
PFNCLOSE pfnclose,
pfnseek,
int cpuType,// CPU类型,32位FDI忽略此参数
PERF perf
)
BOOL DIAMONDAPI FDIIsCabinet(
HFDI hfdi, //FDI context
int hf, //打开的文件句柄
PFDICABINETINFO pfdici //返回压缩文件的一些属性
)
BOOL FAR DIAMONDAPI FDICopy(
HFDI hfdi,
char FAR *pszCabinet, //待解压文件名
char FAR *pszCabPath, //待解压文件的路径
int flags, //保留,现在必须为0
PFNFDINOTIFY pfnfdin, //回调函数,用来处理FDI的通知
PFNFDIDECRYPT pfnfdid, //保留,现在必须为NULL
void FAR *pvUser //作为参数传给回调函数pfnfdin,这里设为NULL
)
注意事项:
1、 用到的库CABINET.DLL,在安装操作系统时已经有了。我们可以用它生成lib库,具体方法可以参照《VC知识库》第二十期。
2、 一个context只能在创建他的线程使用,如果要使用多线程必须创建多个context。
3、 水平有限,具体以微软提供的文档为准。
更多精彩
赞助商链接