繁体   English   中英

UWP FileSavePicker合同文件处理

[英]UWP FileSavePicker Contract File Processing

在我的应用程序中,我正在使用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()之后,我需要对该文件进行更多处理以集成到我的App中。 有人可以指出我正确的方向吗?

使用CacheFileUpdater,我可以对文件做出反应,一旦文件被完全写入

CachedFileUpdater.SetUpdateInformation(fileSavePickerContractTempFile, url, ReadActivationMode.NotNeeded, WriteActivationMode.AfterWrite, CachedFileOptions.None);

现在在App.xaml.cs上,我将覆盖“ OnCachedFileUpdaterActivated”事件,在该事件中,我可以对完全写入的文件执行某些操作。 因此,这现在按预期工作。

但! 这在Windows 10移动版上不起作用,App.xaml.cs上的OnCachedFileUpdaterActivated EventHandler未被激发,这是为什么?

您的文件通过await CreateFileAsync行保存。 方法CreateFileAsync本身会返回IAsyncOperation ,如果您await它,则此操作完成后将执行await之后的下一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM