我正在为Windows 8和10的Windows应用商店制作WinJS应用程序。我正在为我的公司制作应用程序,并且在用户流程结束时,他们应该点击“导出”按钮。将大约10个文件保存到他们选择的文件夹中。
现在,我知道如何使用Windows.Storage.Pickers.FileSavePicker()
保存单个文件,但我不想让用户承担接受10个文件中每个文件的保存的负担 - 我只是想要用户接受他们进入的文件夹,然后将它们全部保存在一起。
这可能在WinJS中吗?
答案 0 :(得分:2)
但我不想让用户承担接受10个文件中每个文件的保存的负担 - 我只是希望用户接受他们要进入的文件夹,然后将它们全部保存在一个文件夹中俯冲。
您可以使用FolderPicker获取目标文件夹,并使用StorageFolder.CreateFileAsync生成10个文件并将所需内容复制到文件中:
var pickers = Windows.Storage.Pickers;
var DataWriter = Windows.Storage.Streams.DataWriter;
...
document.getElementById("btnSave").onclick = function (evt)
{
var content = "Test Content";
var picker = new pickers.FolderPicker();
picker.suggestedStartLocation = pickers.PickerLocationId.computerFolder;
picker.fileTypeFilter.append(".txt");
picker.pickSingleFolderAsync().then(function (folder) {
if (folder != null)
{
for (var i = 1; i < 11; i++) {
folder.createFileAsync("testFile" +i+ ".txt", Windows.Storage.CreationCollisionOption.replaceExisting)
.then(function (file) {
file.openAsync(Windows.Storage.FileAccessMode.readWrite)
.then(function (randomAccessStream) {
var dataWriter = new DataWriter(randomAccessStream.getOutputStreamAt(0));
dataWriter.writeString(content);
dataWriter.storeAsync().done(function () {
randomAccessStream.close();
dataWriter.close();
});
}, errorHandler);
}, errorHandler);
}
}
}, errorHandler)
}
function errorHandler(error){}