首页 > 编程知识 正文

如何使用JSZipHow to use JSZip,如何正确使用手机

时间:2023-05-06 04:40:43 阅读:183252 作者:100

最近在用jszip来压缩script脚本以及相关的配置文件,所以详细了解了下它 ,顺便翻译了下自己需要的文章(请注意,因为只是自己记录看,所以翻译很随便,有用软件翻译并且进行相应的修改了,不喜欢的可以不看)

http://stuk.github.io/jszip/

JSZip是一个用于创建,阅读和编辑.zip文件的JavaScript库,具有友好而简单的API。

下面简单地翻译下这里的文章  http://stuk.github.io/jszip/documentation/examples.html

 

如何使用JSZip(How to use JSZip)

JSZip的一个实例代表一组文件。您可以添加,删除,修改它们。您还可以导入现有的zip文件或生成一个。

获取对象

在浏览器中

对于浏览器,有两个有趣的文件 : dist/jszip.js anddist/jszip.min.js (实际中用一个,min一般是正式发布使用)。

 

如果您使用node AMD加载程序(例如RequireJS),JSZip将注册自己:您只需将js文件放在正确的位置,或者配置加载程序(请参阅此处的RequireJS)。

 

在nodejs中

在nodejs中,您可以使用require:

 

var JSZip = require("jszip");

 

基本操作

第一步是创建一个JSZip的实例:

 

var zip = new JSZip();

 

在这个实例上,我们可以使用.file(name,content)和.folder(name)来添加(更新)文件和文件夹。他们返回当前的JSZip实例,以便您可以链接调用。

// create a filezip.file("hello.txt", "Hello[p my)6cxsw2q");// oops, cat on keyboard. Fixing !zip.file("hello.txt", "Hello Worldn");// create a file and a folderzip.file("nested/hello.txt", "Hello Worldn");// same aszip.folder("nested").file("hello.txt", "Hello Worldn");

使用.folder(name),返回的对象具有不同的根:如果在此对象上添加文件,则将它们放在创建的子文件夹中。这只是一个视图,添加的文件也将在“根”对象中。

 

 

var photoZip = zip.folder("photos");// this call will create photos/READMEphotoZip.file("README", "a folder with photos");

您可以使用.file(name)及其its getter访问文件内容:

 

 

zip.file("hello.txt").async("string").then(function (data) { // data is "Hello Worldn"});if (JSZip.support.uint8array) { zip.file("hello.txt").async("uint8array").then(function (data) { // data is Uint8Array { 0=72, 1=101, 2=108, more...} });}

您也可以用.remove(name)删除文件或文件夹:

 

zip.remove("photos/README");zip.remove("photos");// same aszip.remove("photos"); //通过删除文件夹,您也删除其内容。 生成一个zip文件

使用.generateAsync(options)或.generateNodeStream(options)可以生成一个zip文件(不是一个真实的文件,而是在内存中的表示)。查看此页面了解如何写/给文件给用户的更多信息。

 

var promise = null;if (JSZip.support.uint8array) { promise = zip.generateAsync({type : "uint8array"});} else { promise = zip.generateAsync({type : "string"});}var promise = null;if (JSZip.support.uint8array) { promise = zip.generateAsync({type : "uint8array"});} else { promise = zip.generateAsync({type : "string"});}

 

读zip文件

使用.loadAsync(data)可以加载zip文件。检查此页面以查看如何正确执行(这似乎更棘手)。

 

var new_zip = new JSZip();// more files !new_zip.loadAsync(content).then(function(zip) { // 你现在已经有加载的zip中包含的每个文件 new_zip.file("hello.txt").async("string"); // a promise of "Hello Worldn"});

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。