2015-11-16 55 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