1

我正在使用归档器将目录导出为 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 文件的目的地?

4

1 回答 1

2

根据 node-webkit 的 wiki,您可以通过模拟单击特殊配置的 html 输入字段以编程方式打开对话框

因此,例如,您将插入

<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');
于 2016-03-24T22:21:06.227 回答