2015-11-16 81 views
13

對於UWP所有文件,很容易獲得應用程序的本地文件夾中的所有文件爲:獲取在UWP app文件夾

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

現在,您可以在文件迭代列表,並進一步得到個別文件的信息。

我想類似的所有文件的拼命三郎一個app文件夾,例如,考慮應用*巴紐文件存儲在/資產文件夾中。 具有已知名稱的單個文件是沒有問題的;我可以引用它很容易爲:

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

我的問題是,因此,有沒有得到在應用程序文件夾中的所有文件類似的事情,比如/資產文件夾?從邏輯上講,它應該類似StorageFile.GetFilesFromApplicationFolderUriAsync(new Uri(@"ms-appx:///Assets")),但不知道是否存在上述LocalFolder的等效項。

回答

27

您可以使用Package.InstalledLocation訪問安裝文件夾。因此,你的代碼可以是這樣的:

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

唷!這很快,謝謝。有趣的是,前段時間我使用了Package.InstalledLocation,並且專注於ms-apps:///方案,這讓我忘了。再次感謝 - 你節省了我的時間。 – user5525674

+2

@ user5525674沒問題,我只是路過;) – Romasz

+0

對我來說,GetFolderAsync(「SomeFolder」)會拋出一個異常,如果它是空的。 – jchristof