我們設法使用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())我對文件插件非常熟悉,因此我只知道 –