UWP FileSavePicker 合约文件处理
UWP FileSavePicker Contract File Processing
在我的应用程序中,我使用的是 FileSavePicker 合同(提供商)。这样其他应用程序就可以将文件保存到我的应用程序中。我实现了它,如 MSDN 上所示。现在的问题是,我必须处理一个 "saved" 文件,但我怎么知道保存何时完成?这是我的处理程序
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() 之后,我需要更多地使用该文件以集成到我的应用程序中。有人可以指出我正确的方向吗?
您的文件保存在 await CreateFileAsync
行之后。方法 CreateFileAsync
本身 returns IAsyncOperation
,如果你 await
它,await
之后的下一行将在该操作完成时执行。
有了 CacheFileUpdater,我可以对文件做出反应,只要它被完全写入
CachedFileUpdater.SetUpdateInformation(fileSavePickerContractTempFile, url, ReadActivationMode.NotNeeded, WriteActivationMode.AfterWrite, CachedFileOptions.None);
在 App.xaml.cs 上,我现在覆盖了 "OnCachedFileUpdaterActivated" 事件,在该事件中我可以对完全写入的文件执行一些操作。所以这现在按预期工作了。
但是!这在 Windows 10 Mobile 上不起作用,App.xaml.cs 上的 OnCachedFileUpdaterActivated EventHandler 没有被触发,这是为什么?
在我的应用程序中,我使用的是 FileSavePicker 合同(提供商)。这样其他应用程序就可以将文件保存到我的应用程序中。我实现了它,如 MSDN 上所示。现在的问题是,我必须处理一个 "saved" 文件,但我怎么知道保存何时完成?这是我的处理程序
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() 之后,我需要更多地使用该文件以集成到我的应用程序中。有人可以指出我正确的方向吗?
您的文件保存在 await CreateFileAsync
行之后。方法 CreateFileAsync
本身 returns IAsyncOperation
,如果你 await
它,await
之后的下一行将在该操作完成时执行。
有了 CacheFileUpdater,我可以对文件做出反应,只要它被完全写入
CachedFileUpdater.SetUpdateInformation(fileSavePickerContractTempFile, url, ReadActivationMode.NotNeeded, WriteActivationMode.AfterWrite, CachedFileOptions.None);
在 App.xaml.cs 上,我现在覆盖了 "OnCachedFileUpdaterActivated" 事件,在该事件中我可以对完全写入的文件执行一些操作。所以这现在按预期工作了。
但是!这在 Windows 10 Mobile 上不起作用,App.xaml.cs 上的 OnCachedFileUpdaterActivated EventHandler 没有被触发,这是为什么?