在UWP应用程序中执行后台任务的问题

时间:2016-12-15 13:18:18

标签: c# visual-studio windows-runtime windows-10-universal background-task

我正在使用Microsoft .NET Framework版本4.6.01055在Microsoft Visual Studio社区2015版本14.0.25.425.01更新3中构建UWP应用程序。我正在使用的当前版本的AWS .NET SDK是v3.1.0。

我希望执行一个计划的文件上传任务,我为此创建了一个时间触发的后台任务项目。

我在我的App项目(存储文件资源管理器)中添加了我编写后台任务的Windows运行时组件(ScheduledUploadBackgroundTask)作为参考。 Image1

我还创建了一个单独的类库(AppUtils),我在其中定义了许多用于上传后台操作的实用程序。该库在后台任务WinRT中引用。 Image2

现在,我的后台任务中有一个文件路径。当我执行 GetFileFromPathAsync(filePath)时,我得到了AccessDeniedException。 Image3

我知道WinRT可以访问应用程序的Local&临时文件夹,但我上传的数据(文件/文件夹)可能是非常大的卷,这使得复制到Local / Temp文件夹不可行。

请为此问题建议任何解决方法。

1 个答案:

答案 0 :(得分:1)

据我所知,您无法直接在UWP中通过路径(C:\...)获取文件。您必须使用Storage API来获取文件。

在您的情况下,您必须首次使用FileOpenPicker,然后您可以使用FutureAccessList来存储文件和/或位置(例如文件夹),并在将来轻松访问这些项目

要查看更多代码示例,请参阅File picker sampleFile access sample