在C ++ Windows 8 Store应用程序中批量复制文件

时间:2013-10-07 06:46:01

标签: c++ visual-studio-2012 windows-8 windows-runtime c++-cx

我有一个使用C ++ / CX编写的Windows 8商店应用程序,我需要将多个文件(一次性)从用户选择的位置复制到App的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创建单独的任务,而是允许我一次性复制用户选择的文件向量?

0 个答案:

没有答案