2015-11-16 18 views
13

Für UWP ist es einfach, alle Dateien in der App lokalen Ordner zu erhalten:bekommen alle Dateien in UWP App Ordner

IReadOnlyList<StorageFile> files = await ApplicationData.Current.LocalFolder.GetFilesAsync();

Sie können nun auf den Dateien Liste durchlaufen und noch weiter erhalten Info zu einzelnen Dateien.

Ich mag ein ähnliches all-file-Getter für einen App-Ordner, zum Beispiel, sollten Sie die /Assets Ordner, in dem App * .png Dateien gespeichert sind. Einzelne Datei mit einem bekannten Namen ist kein Problem; Ich kann darauf verweisen ganz einfach wie:

StorageFile.GetFileFromApplicationUriAsync(new Uri(@"ms-appx:///Assets/StoreLogo.png"))

Meine Frage ist, daher ist es eine ähnliche Sache, alle Dateien in einem App-Ordner für immer, wie /Assets Ordner? Logischerweise sollte es so etwas wie StorageFile.GetFilesFromApplicationFolderUriAsync(new Uri(@"ms-appx:///Assets")) sein, aber nicht bewusst, wenn ein Äquivalent des oben gezeigten LocalFolder existiert.

Antwort

27

Sie können auf Ihren Installationsordner zugreifen, indem Sie verwenden. Daher kann der Code wie folgt aussehen:

StorageFolder appInstalledFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; 
StorageFolder assets = await appInstalledFolder.GetFolderAsync("Assets"); 
var files = await assets.GetFilesAsync(); 
+0

Puh! Das war ziemlich schnell und danke. Lustigerweise habe ich Package.InstalledLocation schon vor einer Weile benutzt und mich auf das ms-apps: /// Schema zu konzentrieren, hat mich vergessen lassen. Nochmals vielen Dank - Sie haben meine Zeit gerettet. – user5525674

+2

@ user5525674 Kein Problem, ich war nur vorbei;) – Romasz

+0

Für mich wird GetFolderAsync ("SomeFolder") eine Ausnahme werfen, wenn es leer ist. – jchristof