簡體   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