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

Issues in executing Background Task in a UWP App

我正在 Microsoft Visual Studio Community 2015 版本 14.0.25.425.01 Update 3 和 Microsoft .NET Framework 版本 4.6.01055 中构建一个 UWP 应用程序。我当前使用的 AWS .NET SDK 版本是 v3.1.0.

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

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

我还创建了一个单独的 Class 库 (AppUtils),我在其中定义了许多要在上传后台使用的实用程序 operation.This 库在后台任务 WinRT 中被引用。 Image2

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

我知道 WinRT 可以访问应用程序的 Local 和 Temp 文件夹,但我上传的数据 (files/folders) 可能非常大,因此无法复制到 Local/Temp 文件夹。

请提出解决此问题的方法。

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

在您的情况下,您必须使用 FileOpenPicker for the first time, then you could use FutureAccessList 来存储文件 and/or 位置(如文件夹)并在将来轻松访问这些项目。

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