(已解决) 集算器外部库 ZipCli 的问题

大佬们,关于外部库 ZipCli 的使用,我想求助一些问题,恳请大佬们得闲时给予帮助:

我用的是 Mac 社区版集算器,在官网下载了外部库 (大概 600 多兆),设置好之后是这样的:

imagepng

重启集算器后,写的代码如下,我要解压一个后缀是 ofd 的文件,Zip 是能直接解压 ofd 文件的。

A
1 =zip_open("/Users/bianqi/Downloads/efapiao.ofd")
2 =zip_extract(A1,"*.xml","/Users/bianqi/Downloads/aa")
3 >zip_close(A1)

但出现了报错,报错提示和堆栈截图如下:

imagepng

imagepng

虽然报错了,但在指定的路径下确实生成了两个文件,但也只是起到了类似 zip@u()加压缩的功能,并没有发生抽取指定后缀名文件的动作。zip@u() 也会报错,但的确解压缩了。

imagepng

以上现象说明,本机外部库的设置是有效的,且相关函数也能运行。但是跟预期有点出入:

1、zip_open() 中的路径必须写成全路径,集算器中设置的主路径和相对路径用法在该函数中不起作用;

2、同样,zip_extract() 中的第三参数也是一个路径,必须显式全路径指定,也不适用于默认的主路径或者相对路径的写法,且文件夹不会自动生成,需事先手工创建;

3、zip_extract() 中的 2 参 ". 后缀 ",不支持递归获取子文件夹中的所有. 后缀的文件,抽取不出来。

拿我提供的 efapiao.ofd 为例,我希望能抽取到解压后 Doc_0 文件夹下,Attchs 文件夹里的 original_invoice.xml 文件,该如何 extract。

上述问题恳请大佬们有空时帮忙看看,给予帮助指导,谢谢!🙏 🙏

附上 ofd 文件,ofd 可以直接修改后缀为 zip 或者 rar,解压后就可以看到整体的结构和内容。而 java 是能直接读取 ofd 的,不用事先修改后缀。

efapiaoofdzip