2016-03-24 30 views
1

Nodejs/node-webkit'te bir dizini zip dosyası olarak vermek için archiver kullanıyorum. Ben kullanıcı zip dosyası geleneksel SaveFileDialog kullanılarak dışa olması gereken yerde üzerinde hedefi ayarlamak için nasıl bir şey bulamıyorum AncakDizini bir ZipFileDialog ile zip olarak dışa aktarma

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() 

.

Kullanıcı, zip dosyasını node-webkit'te bir SaveFileDialog kullanarak dışa aktarmak için hedefi nasıl ayarlayabileceğimi bilen var mı?

cevap

2

node-webkit'in wiki'sine göre, specially configured html input field üzerinde bir tıklamayı simüle ederek open a dialog programmatically yapabilirsiniz.

Yani, örneğin size

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

eklemek istiyorum ve programlı isteğe iletişim tetikleyebilir ve girilen yolunu almak için böyle bir şey kullanın:

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

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