【问题标题】:How Can You Save Multiple Files At Once with WinJS?如何使用 WinJS 一次保存多个文件?
【发布时间】:2017-02-08 04:34:24
【问题描述】:

我正在为 Windows 8 和 10 的 Windows Store 制作一个 WinJS 应用程序。我正在为我的公司制作一个应用程序,在用户进程结束时,他们应该单击一个导出按钮,该按钮可以保存大约 10 个文件到他们选择的文件夹。

现在,我知道如何使用Windows.Storage.Pickers.FileSavePicker() 来保存单个文件,但我不想让用户承担接受 10 个文件中每一个文件的保存的负担——我只想让用户接受他们要进入的文件夹,然后一口气将它们全部保存。

在 WinJS 中可以吗?

【问题讨论】:

  • 使用.FolderPicker(),然后将文件名添加到路径中。
  • @ChrisG 您介意在粘贴箱中发送一些示例代码,了解如何使用 FolderPicker() api,并获取写入该文件夹的文件名和文件内容数组吗?我会非常感激!
  • 我不会,抱歉。我通过谷歌的自动完成找到了 FolderPicker 调用,我什至没有打开页面。你得到报酬来做这件事,工作就被裁掉了。祝你好运:)

标签: javascript windows-store-apps win-universal-app winjs windows-10-universal


【解决方案1】:

但我不想让用户承担接受保存 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){}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-15
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    相关资源
    最近更新 更多