我们设法使用JSZip javascript API和cordova file plugin解压缩,修改和压缩文件。它也应该从头开始创建一个zip文件。实际上并不需要使用本地代码进行压缩操作(尽管它很可能更快),只能读取压缩和编写压缩文件的文件。因此,使用不特别为cordova设计的javascript API是很好的。
过程 如果你想尝试JSZip +文件插件的方法,这里是我们如何使用它的工作快速概要:
- 我们使用该文件的插件来读取文件作为二进制文件。如果你足够幸运只有文本文件,你也可以阅读文本,但这种方式不那么灵活。请注意,要读取这些文件,您需要从其
FileEntry
中获取File
对象,这将需要使用DirectoryEntry
s在文件系统中进行导航。如果您不熟悉该文件插件,请查看其文档以执行此步骤。
- 我们创建一个JSZip对象。
- 根据需要操作JSZip对象。您可以在zip中创建文件夹,添加文件,删除一些文件,修改某些内容。如你所见。他们的文档给出了简单而好的例子。
- 使用JSZip
JSZip#generate()
方法生成zip二进制内容,指定类型。如果你想用它创建一个实际的文件,我们注意到string和arraybuffer可以用文件插件的写入方法(在创建文件后)写入,而无需在iOS上转换它,但不是uint8array(我们没有尝试其他代类型)。
- 根据需要处理二进制文件。这与您读过实际压缩文件的二进制文件相同。
PS:这个文件的插件对cordova.apache.org一些过时的文档。虽然其中的示例可能有用,但请注意,其中一些示例不再有效。例如,resolveLocalFileSystemURI()
现在是resolveLocalFileSystemURL()
。
对于不赞成使用的方法(例如resolveLocalFileSystemURI())我对文件插件非常熟悉,因此我只知道 –