UWP FileSavePicker Обработка файла контракта

В моем приложении я использую контракт 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() мне нужно больше работать с этим файлом для интеграции в мое приложение. Может ли кто-нибудь указать мне в правильном направлении?

2 ответа

Решение

С CacheFileUpdater я могу реагировать на файл, как только он полностью написан

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

В App.xaml.cs теперь я переопределяю событие "OnCachedFileUpdaterActivation", в котором я могу выполнить некоторые действия с полностью записанным файлом. Так что это работает сейчас, как и ожидалось.

НО! Это не работает на Windows 10 Mobile, там OnHachedFileUpdaterActivation EventHandler на App.xaml.cs не запускается, почему это?

Ваш файл сохраняется после строки с await CreateFileAsync, метод CreateFileAsync само по себе возвращает IAsyncOperation, если ты await это, следующая строка после await будет выполнен после завершения этой операции.

Другие вопросы по тегам