2015-11-16 26 views
13

Per UWP, è facile da ottenere tutti i file nella cartella locale applicazione come:Ottenere tutti i file nella cartella di applicazione UWP

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

È ora possibile scorrere sui file lista e anche ottenere ulteriori informazioni su singoli file.

Vorrei un simile tutto-file-getter per una cartella di app, per esempio, prendere in considerazione la cartella /Assets in cui sono memorizzati app * .png file. Un singolo file con un nome conosciuto non è un problema; Posso fare riferimento ad esso abbastanza facilmente come:

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

La mia domanda è, quindi, c'è una cosa simile per ottenere tutti i file in una cartella app, come ad esempio /Assets cartella? Logicamente, dovrebbe essere qualcosa come StorageFile.GetFilesFromApplicationFolderUriAsync(new Uri(@"ms-appx:///Assets")) ma inconsapevole se esiste un equivalente della cartella locale mostrata sopra.

risposta

27

È possibile accedere alla cartella di installazione utilizzando Package.InstalledLocation. Pertanto il codice può assomigliare a questo:

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

Accidenti! è stato abbastanza veloce e grazie. Abbastanza divertente ho usato Package.InstalledLocation qualche tempo fa e concentrandomi sullo schema ms-apps: /// mi ha fatto dimenticare. Grazie ancora - hai risparmiato il mio tempo. – user5525674

+2

@ user5525674 Nessun problema, stavo passando;) – Romasz

+0

Per me, GetFolderAsync ("SomeFolder") genererà un'eccezione se è vuota. – jchristof

Problemi correlati