0

Je construis une application UWP dans Microsoft Visual Studio Community 2015 Version 14.0.25.425.01 Update 3 avec Microsoft .NET Framework Version 4.6.01055. La version actuelle d'AWS .NET SDK que j'utilise est v3.1.0.Problèmes liés à l'exécution de la tâche d'arrière-plan dans une application UWP

Je souhaite effectuer une tâche de téléchargement de fichier planifiée pour laquelle j'ai créé un projet de tâche d'arrière-plan déclenché par le temps.

J'ai ajouté comme référence le composant d'exécution Windows (ScheduledUploadBackgroundTask) dans lequel j'ai écrit la tâche d'arrière-plan dans mon projet App (Storage File Explorer). Image1

J'ai aussi créé une classe distincte Bibliothèque (AppUtils), où je l'ai défini plusieurs utilitaires à utiliser dans la bibliothèque de l'arrière-plan de chargement est fait référence dans la tâche de fond WinRT. Image2

Maintenant, j'ai un chemin de fichier dans ma tâche d'arrière-plan. Quand je fais un GetFileFromPathAsync (filePath) je reçois le AccessDeniedException. Image3

Je sais que WinRT a accès aux dossiers & Temp locaux d'application, mais les données (fichiers/dossiers) Je téléchargement peut être de très gros volumes qui laisse la copie dans les dossiers locaux/Temp pas possible.

Veuillez suggérer une solution de contournement pour ce problème.

Répondre

1

Comme je sais, vous ne pouvez pas obtenir des fichiers via le chemin (C:\...) directement dans UWP. Vous devez utiliser des API de stockage pour obtenir des fichiers.

Dans votre cas, vous devez utiliser FileOpenPicker pour la première fois, puis vous pouvez utiliser FutureAccessList pour stocker des fichiers et/ou des emplacements (comme des dossiers) et accéder facilement à ces éléments dans le futur.

Pour voir d'autres exemples de code, veuillez consulter le File picker sample et le File access sample.

+0

Mais je veux obtenir les fichiers dans une tâche d'arrière-plan (code en WRC) donc je ne peux pas utiliser le sélecteur de dossier/dossier –

+0

@ sanster23 Pour la première fois, vous devez utiliser le sélecteur de dossier/dossier. Parce que vous devez stocker des fichiers ou des emplacements dans FutureAccessList. Ensuite, dans la prochaine utilisation, vous pourriez obtenir des fichiers directement via FutureAccessList. –

+0

est-il une solution de contournement pour utiliser Picker dans un BackGroundTask sans ouvrir le sélecteur sur l'interface utilisateur –