0

Ich erstelle eine UWP-Anwendung in Microsoft Visual Studio Community 2015 Version 14.0.25.425.01 Update 3 mit Microsoft .NET Framework Version 4.6.01055. Die aktuelle Version von AWS .NET SDK, die ich verwende, ist v3.1.0.Probleme beim Ausführen der Hintergrundaufgabe in einer UWP-App

Ich möchte eine geplante Aufgabe zum Hochladen von Dateien durchführen, für die ich ein zeitgesteuertes Hintergrundprojekt erstellt habe.

Ich habe als Referenz die Windows-Laufzeitkomponente (ScheduledUploadBackgroundTask) hinzugefügt, wo ich die Hintergrundaufgabe in meinem App-Projekt (Storage File Explorer) geschrieben habe.

Ich habe auch eine separate Klassenbibliothek (AppUtils) erstellt, wo ich viele Dienstprogramme definiert habe, die im Upload-Background-Vorgang verwendet werden. Diese Bibliothek wird in der Hintergrundtask WinRT referenziert. Image2

Jetzt habe ich einen Dateipfad in meiner Hintergrundaufgabe. Wenn ich eine GetFileFromPathAsync (filePath) mache bekomme ich die AccessDeniedException. Image3

Ich bin mir bewusst, dass WinRT Zugriff auf App aus der Umgebung von & Temp-Ordner hat, aber die Daten (Dateien/Ordner) Ich kann von sehr großen Mengen bin das Hochladen, das nicht machbar Kopieren auf Local/Temp-Ordner verläßt.

Bitte schlagen Sie eine Problemumgehung für dieses Problem vor.

Antwort

1

Wie ich weiß, können Sie Dateien nicht über den Pfad (C:\...) direkt in UWP erhalten. Sie müssten Speicher-APIs verwenden, um Dateien abzurufen.

In Ihrem Fall müssten Sie zum ersten Mal FileOpenPicker verwenden, dann könnten Sie FutureAccessList verwenden, um Dateien und/oder Speicherorte (wie Ordner) zu speichern und in Zukunft einfach auf diese Elemente zuzugreifen.

Weitere Codebeispiele finden Sie in den Artikeln File picker sample und File access sample.

+0

Aber ich möchte die Dateien in einer Hintergrundaufgabe (Code in WRC) bekommen, so kann ich nicht Datei/Ordner-Picker verwenden –

+0

@ sanster23 Zum ersten Mal müssen Sie Datei/Ordner-Picker verwenden. Weil Sie Dateien oder Standorte in FutureAccessList speichern müssen. Bei der nächsten Verwendung könnten Sie Dateien direkt über FutureAccessList erhalten. –

+0

gibt es eine Problemumgehung, Picker in einer BackGroundTask zu verwenden, ohne die Auswahl auf der Benutzeroberfläche zu öffnen –

Verwandte Themen