2017-01-11 12 views
0

私のアプリケーションでは、FileSavePicker契約(プロバイダ)を使用しています。だから、他のアプリは私のアプリケーションにファイルを保存することができます。私はそれを実装しました。それはMSDNに示されています。問題は今、私は "保存"されたファイルを処理しなければならないが、保存が完了したらどのように私は知っているのだろうか?ここに私のハンドラがありますUWP FileSavePicker契約ファイル処理

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

使用 ')(fileSavePickerContractTempFolder.CreateFileAsyncを待つContinueWith。((S、A)=> {<! - ここにあなたのコードを書く - >})' – AVK

+0

IAsyncOperation は 'ContinueWith' – andy

+0

試しのための定義が含まれていませんこれが動作するかどうかを確認します。あなたのコードはここに戻ります - > return file.Result;}); ' – AVK

答えて

1

、完全に書き込まれたファイル。だからこれは期待どおりに動作します。

BUT!これはWindows 10 Mobileでは動作しません。そこにApp.xaml.csのOnCachedFileUpdaterActivated EventHandlerが起動されないのはなぜですか?

+0

誰もこの問題で私を助けてくれませんか? – andy

+0

私は同じ問題があります。それを修正する方法を知らない。 DropBoxアプリは何とか動作しますが、私のものではありません。 DropBoxは同じことをやったことがあります(以前のところ):http://www.jonathanantoine.com/2013/03/25/win8-the-cached-file-updater-contract-or-how-to-make-more-fulful - ファイルセーブ - ピッカー - 契約/ –

0

ファイルはawait CreateFileAsyncの行の後に保存されます。方法CreateFileAsyncはそれ自身IAsyncOperationを返します。awaitならば、この操作が完了したときにawaitの次の行が実行されます。すぐに、私が今私はいくつかのアクションを実行することが可能な「OnCachedFileUpdaterActivated」イベントを、上書きApp.xaml.csでは完全に

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

書かれている私は、ファイルに対応することができますCacheFileUpdaterで

+0

はい、ただし、ドロップボックスアプリから保存されたファイルを処理したい場合、このファイルはまだダウンロードされており、ファイルサイズは0です。 – andy

+0

保存するファイルを選択しないでください。 – lindexi

+0

そして、どのように完了したのか分かりますか? – andy

関連する問題