你还有什么比可能运行到更多的是,FDICopy只读取你传入驾驶室。它将使用fdintNEXT_CABINET
以获取您在响应fdintCOPY_FILE
提取任何文件跨区数据,但仅适用于调用fdintCOPY_FILE
在第一个出租车上启动的文件。
要获取整个集合的目录列表,您需要在循环中调用FDICopy。每次获得fdintCABINET_INFO
事件时,请保存psz1
参数(下一个出租车名称)。当FDICopy返回时,检查。如果它是一个空字符串,则完成后,如果不再次用下一个cab作为新路径调用FDICopy。
fdintCABINET_INFO:这个唯一的责任是返回0,继续处理。您可以使用所提供的信息(下一个机柜的路径,下一个磁盘,路径名称,nad集标识符),但不需要。
fdintPARTIAL_FILE:根据您如何处理您的出租车,您可能可以忽略这一点。你只会在第二张和后面的图片中看到它,这是为了告诉你,特定的条目是从以前的出租车继续。如果你从第一个出租车出发,那么你已经看到了该文件的fdintCOPY_FILE
。如果你正在处理随机的.cabs文件,你也不能真正使用它,因为你不会提取文件的开始。
fdintNEXT_CABINET:你可以用它来提示用户输入下一个柜一个新的目录,但对于简单的跨越支持只返回0,如果在文件名通过有效或-1,如果事实并非如此。如果您返回0并且驾驶室无效,或者是错误的,则会再次调用。最简单的方法(如果你不要求一个新的磁盘/目录),只是检查pfdin^.fdie
。如果是FDIError_None第一次调用所需的驾驶室时是相等的,所以您可以返回0.如果是其他任何事情,它已经尝试至少打开一次要求的驾驶室,因此您可以返回-1作为错误。
fdintENUMERATE:我想你可以忽略这个。这不在文档中,我看过的两个cab库不使用它。它可能是以前API版本的剩余部分。
你需要链接到一些背景信息,这样我们那些不知道你在说什么的人可以加快速度 –
如果你想解压缩CAB文件有一个开源的替代方案:http:///www.cabextract.org。英国图书馆根据LGPL条款获得许可,可用于商业应用。 –
我不确定这里的问题是什么。你的例子很清楚:当你收到'fdintCLOSE_FILE_INFO'时,你应该关闭文件并将它的日期和时间设置为你收到的值。 (我只是从你发布的内容中获得了,顺便说一句,因为你遗漏了你的问题中的重要信息,就像大卫所说的那样)。我不确定如何更清楚地说明。 –