0

Я создаю приложение UWP в Microsoft Visual Studio Community 2015 Версия 14.0.25.425.01 Обновление 3 с Microsoft .NET Framework версии 4.6.01055. Текущая версия AWS .NET SDK, которую я использую, - v3.1.0.Проблемы с выполнением фоновой задачи в приложении UWP

Я хочу выполнить запланированную задачу загрузки файлов, для которой я создал проект фоновой задачи, запускаемый по времени.

Я добавил в качестве ссылки компонент времени выполнения Windows (ScheduledUploadBackgroundTask), где я написал фоновое задание, в моем проекте приложения (File File Explorer). Image1

Я также создал отдельную библиотеку классов (AppUtils), где я определил множество утилит, которые будут использоваться в фоновом режиме загрузить произвольное operation.This библиотеки ссылки в фоновом режиме задачи WinRT. Image2

Теперь у меня есть путь к файлу в моей фоновой задаче. Когда я делаю GetFileFromPathAsync (filePath) Я получаю AccessDeniedException. Image3

Я знаю, что WinRT имеет доступ к локальным & Temp папки приложение, но данные (файлы/папки) Я загрузка может быть очень больших объемах, оставляет копирование в Local/Temp папки не представляется возможным.

Просьба предложить любое обходное решение для этой проблемы.

ответ

1

Как я знаю, вы не можете получить файлы по пути (C:\...) непосредственно в UWP. Для получения файлов вам придется использовать API хранения данных.

В вашем случае вам нужно будет использовать FileOpenPicker в первый раз, тогда вы можете использовать FutureAccessList для хранения файлов и/или местоположений (например, папок) и для этого легко получить доступ к этим элементам в будущем.

Чтобы увидеть больше примеров кода, см. File picker sample и File access sample.

+0

Но я хочу получить файлы в фоновой задаче (код в WRC), поэтому я не могу использовать File/Folder Picker –

+0

@ sanster23 Впервые вам нужно использовать File/Folder Picker. Потому что вам нужно хранить файлы или местоположения в FutureAccessList. Затем при следующем использовании вы можете напрямую получать файлы через FutureAccessList. –

+0

есть обходной путь для использования Picker в BackGroundTask без открытия сборщика в UI –