使用SaveFileDialog将目录导出为zip

时间:2016-03-24 21:44:07

标签: node.js save node-webkit nw.js iojs

我正在使用archiver将目录导出为nodejs / node-webkit中的zip文件。

var file_system = require("fs")
var archiver = require("archiver")

var output = file_system.createWriteStream("files.zip")
var archive = archiver("zip")

output.on("close", function() {
  console.log(archive.pointer() + " total bytes")
  console.log("archiver has been finalized and the output file descriptor has closed.")
})

archive.on("error", function(err) {
  throw err
})

archive.pipe(output)
archive.bulk([
  { expand: true, cwd: "./content/project/", src: ["**"], dest: "./content/project/"}
])
archive.finalize()

但是我找不到任何关于如何让用户使用传统的SaveFileDialog将zip文件导出到目的地的目的地。

有没有人知道如何让用户使用node-webkit中的SaveFileDialog设置目标在哪里导出zip文件?

1 个答案:

答案 0 :(得分:2)

根据node-webkit的wiki,您可以通过模拟open a dialog programmatically上的点击来specially configured html input field

例如,您可以插入

<input type="file" id="fileDialog" nwsaveas />
<!-- or specify a default filename: -->
<input type="file" id="fileDialog" nwsaveas="myfile.txt" />

并使用类似的东西来选择性地以编程方式触发对话框并获取输入的路径:

function chooseFile(name) {
  var chooser = document.querySelector(name);
  chooser.addEventListener("change", function(evt) {
    console.log(this.value);
  }, false);

  chooser.click();  
}
chooseFile('#fileDialog');