在我的应用程序中,我使用的是一个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()之后,我需要更多地处理该文件,以便在我的应用程序中进行集成。有人能给我指明正确的方向吗?
发布于 2017-01-17 17:53:16
使用CacheFileUpdater,我可以对文件作出反应,只要它被完整地写好了
CachedFileUpdater.SetUpdateInformation(fileSavePickerContractTempFile, url, ReadActivationMode.NotNeeded, WriteActivationMode.AfterWrite, CachedFileOptions.None);在App.xaml.cs上,我现在重写"OnCachedFileUpdaterActivated“事件,在该事件中,我可以使用完全编写的文件执行一些操作。因此,现在,正如预期的那样,这是可行的。
但!这在Windows10Mobile上不起作用,在那里OnCachedFileUpdaterActivated EventHandler on App.xaml.cs不会被触发,为什么会这样?
发布于 2017-01-11 16:33:42
您的文件在await CreateFileAsync行后保存。方法CreateFileAsync本身返回IAsyncOperation,如果您对其进行await,则在此操作完成后将执行await后面的下一行。
https://stackoverflow.com/questions/41595862
复制相似问题