Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# UWP FileSavePicker合同文件处理_C#_Uwp_Win Universal App_Filesavepicker - Fatal编程技术网

C# UWP FileSavePicker合同文件处理

C# UWP FileSavePicker合同文件处理,c#,uwp,win-universal-app,filesavepicker,C#,Uwp,Win Universal App,Filesavepicker,在我的应用程序中,我使用的是FileSavePicker合同(提供者)。所以其他应用程序可以将文件保存到我的应用程序中。我实现了它,如MSDN所示。现在的问题是,我必须处理一个“保存”的文件,但我如何知道保存何时完成?这是我的经纪人 private async void FileSavePickerUI_TargetFileRequested(FileSavePickerUI sender, TargetFileRequestedEventArgs args) { var def

在我的应用程序中,我使用的是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)。在deleral.Complete()之后,我需要更多地处理该文件,以便集成到我的应用程序中。有人能告诉我正确的方向吗?

您的文件保存在
wait-CreateFileAsync
行之后。方法
CreateFileAsync
本身返回
IAsyncOperation
,如果您
wait
它,当此操作完成时,
wait
后的下一行将被执行。

使用CacheFileUpdater,我可以在文件完全写入后立即对其作出反应

CachedFileUpdater.SetUpdateInformation(fileSavePickerContractTempFile, url, ReadActivationMode.NotNeeded, WriteActivationMode.AfterWrite, CachedFileOptions.None);
在App.xaml.cs上,我现在覆盖了“onCachedFileUpdateActivated”事件,在该事件中,我可以使用完全写入的文件执行一些操作。因此,正如预期的那样,这项工作现在起作用了


但是!这在Windows 10 Mobile上不起作用,App.xaml.cs上的OnCachedFileUpdateActivatedEventHandler没有被触发,这是为什么?

使用
等待fileSavePickerContractTempFolder.CreateFileAsync().ContinueWith((s,a)=>{})
IAsyncOperation不包含“ContinueWith”的定义试试看是否有效
StorageFile filesavepickercontacttempfile=wait filesavepickercontacttempfolder.CreateFileAsync(saveFileName,CreationCollisionOption.ReplaceExisting).AsTask().ContinueWith((file)=>{return file.Result;})也不起作用。在“”上,我调用了一个方法并将StorageFile传入,但StorageFile此时甚至有0字节。对此问题没有更多想法吗?是的,但如果我要处理一个文件,例如从dropbox应用程序保存的文件,然后此文件仍在下载,文件大小为0。选择要保存的文件未完成。我如何知道文件何时完成?没有人能帮我解决此问题吗?我也有同样的问题。我不知道如何修复它。DropBox应用程序在某种程度上起作用,但我的不起作用。DropBox也做了同样的事情(不久前):