1.unzip
网上看了文档看了例子,很简单的几句话,貌似挑不出毛病,但是我一写就报错
var fs = require("fs");
var unzip = require("unzip");
fs.createReadStream('archiver-unzip.zip').pipe(unzip.Extract({ path: 'unarchive' }));
我一运行,就报错,primordials is not defined
折腾了一天没折腾出来
2.adm-zip
于是我问了我的同事,发现我同事用的adm-zip
用法如下:
var adm_zip = require('adm-zip');
//extracting archives
var unzip = new adm_zip('adm/adm-archive.zip');
unzip.extractAllTo("adm/adm-unarchive/", /*overwrite*/true);
感人至深,成功了。
开发步骤
1.第一个桌面应用:
自行参考:https://electronjs.org/docs/tutorial/first-app
2.实现拖拽
3.实现解压
文档结构:
实现拖拽:
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
#holder {
border: 10px dashed #ccc;
/* width: 300px; */
height: 300px;
margin: 20px auto;
}
#holder.hover {
border: 10px dashed #333;
}
</style>
<script>
//Same as $(document).ready();
function ready(fn) {
if (document.readyState != 'loading') {
fn();
} else {
document.addEventListener('DOMContentLoaded', fn);
}
}
//When the page has loaded, run this code
ready(function() {
// prevent default behavior from changing page on dropped file
window.ondragover = function(e) {
e.preventDefault();
return false
};
// NOTE: ondrop events WILL NOT WORK if you do not "preventDefault" in the ondragover event!!
window.ondrop = function(e) {
e.preventDefault();
return false
};
var holder = document.getElementById('holder');
holder.ondragover = function() {
this.className = 'hover';
return false;
};
holder.ondragleave = function() {
this.className = '';
return false;
};
holder.ondrop = function(e) {
e.preventDefault();
for (var i = 0; i < e.dataTransfer.files.length; ++i) {
console.log(e.dataTransfer.files[i].path);
}
return false;
};
});
</script>
</head>
<body>
<div id="holder"></div>
<button id="jieya">abc</button>
</body>
</html>
实现解压缩:
var test = document.getElementById("jieya");
test.onclick = function() {
var adm_zip = require('adm-zip');
var unzip = new adm_zip('abc.zip');
unzip.extractAllTo("adm-unarchive/", /*overwrite*/true);
}
运行之后,完美解压缩
仅是示例,如有疑问,自行解决