我有一个使用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创建单独的任务,而是允许我一次性复制用户选择的文件向量?