在我的应用中,我正在使用FileSavePicker合约(提供商)。因此其他应用可以将文件保存到我的应用程序我实现了它,因为它在MSDN上显示。现在的问题是,我必须处理一个“已保存”的文件,但我怎么知道,保存完成后?这是我的处理程序
private async void FileSavePickerUI_TargetFileRequested(FileSavePickerUI sender, TargetFileRequestedEventArgs args)
{
var deferral = args.Request.GetDeferral();
string saveFileName = sender.FileName;
StorageFolder fileSavePickerContractTempFolder = await ApplicationData.Current.LocalCacheFolder.CreateFolderAsync("FileSavePickerContract", CreationCollisionOption.OpenIfExists);
StorageFile fileSavePickerContractTempFile = await fileSavePickerContractTempFolder.CreateFileAsync(saveFileName, CreationCollisionOption.ReplaceExisting);
args.Request.TargetFile = fileSavePickerContractTempFile;
deferral.Complete();
}
我的应用程序的目标是周年纪念更新(1607)。在deferral.Complete()之后我需要更多地使用该文件来集成到我的应用程序中。有人能指出我正确的方向吗?
答案 0 :(得分:1)
使用CacheFileUpdater,我可以对文件作出反应,只要它完全写入
join
在App.xaml.cs上,我现在覆盖“OnCachedFileUpdaterActivated”事件,我可以在其中使用完全写入的文件执行一些操作。所以现在按预期工作了。
BUT!这在Windows 10 Mobile上不起作用,App.xaml.cs上的OnCachedFileUpdaterActivated EventHandler没有被触发,为什么会这样?
答案 1 :(得分:0)
您的文件将保存在await CreateFileAsync
行之后。方法CreateFileAsync
本身返回IAsyncOperation
,如果您await
,则此操作完成时将执行await
之后的下一行。