0

我有一个使用 C++/CX 编写的 Windows 8 Store 应用程序,我需要将多个文件(一次)从用户选择的位置复制到应用程序的 localdata 文件夹。

在 Windows 运行时,我发现只有 StorageFile::CopyAsync API 允许我一次复制一个文件。我这样做:

task<IVectorView<StorageFile^>^>(openPicker->PickMultipleFilesAsync()).then([this](IVectorView<StorageFile^>^ fileVector)
{
    m_copyTasks.clear();

    for (auto file : fileVector)
    {
        m_copyTasks.push_back(create_task(file->CopyAsync(ApplicationData::Current->TemporaryFolder, file->Name, NameCollisionOption::ReplaceExisting)));
    }

    when_all(begin(m_copyTasks), end(m_copyTasks)).then([this](std::vector<StorageFile^> results)
    {
        for (auto copiedFile : results)
        {
            // do stuff
        }
    }).then([this]()
    {
        // do stuff
    });
});

有没有更好的选择,它不会强迫我为每个文件 bur 创建单独的任务,而是允许我一次性复制用户选择的文件向量?

4

0 回答 0