我已经在我的应用程序中实现了 FileSavePicker 合同,所以当用户从邮件应用程序中选择一个附件并想要保存到我的应用程序时,就会触发 OnTargetFileRequested(FileSavePickerUI^ sender, TargetFileRequestedEventArgs^ e) 方法....
OnTargetFileRequested(FileSavePickerUI^ sender, TargetFileRequestedEventArgs^ e)
{
auto request = e->Request;
auto deferral = request->GetDeferral();
create_task(ApplicationData::Current->LocalFolder->CreateFileAsync(sender->FileName, CreationCollisionOption::GenerateUniqueName)).then([request, deferral](StorageFile^ file)
{
// Assign the resulting file to the targetFile property indicates success
request->TargetFile = file;
// Complete the deferral to let the Picker know the request is finished.
deferral->Complete();
return file;
}.then([=](StorageFile^ file)
{
//here i will upload file to my metro app
}
现在无论我创建什么文件,我都需要上传到我的 Metro 应用程序....但是我面临 deferral->complete 的问题...在将文件上传到我的文件后是否需要写入 deferral->complete() app 或以上的 deferral->complete 语句是否正确.??...
但是当我在上传文件后使用 deferral->complete 时,总是有 0 个字节的文件被上传......
如果我在 createFileAsync() 中使用 deferral->complete ,如上面的代码所示,那么文件没有上传......请帮助我......
你能告诉我这是正确的方法吗?
提前致谢...