获取UWP应用文件夹中的所有文件

24
对于 UWP,可以使用以下代码轻松获取应用本地文件夹中的所有文件:
``` IReadOnlyList files = await ApplicationData.Current.LocalFolder.GetFilesAsync(); ```
您现在可以遍历 `files` 列表,甚至可以获取单个文件的详细信息。
我希望能够获得类似的应用程序文件夹中所有文件的获取器,例如考虑存储应用程序 `*.png` 文件的 `/Assets` 文件夹。已知名称的单个文件没有问题;我可以很容易地引用它,例如:
``` StorageFile.GetFileFromApplicationUriAsync(new Uri(@"ms-appx:///Assets/StoreLogo.png")) ```
所以我的问题是,是否有类似的方法来获取应用程序文件夹中的所有文件,比如 `/Assets` 文件夹?从逻辑上讲,它应该类似于以下代码:
``` StorageFile.GetFilesFromApplicationFolderUriAsync(new Uri(@"ms-appx:///Assets")) ```
但不确定是否存在类似于上面显示的 LocalFolder 的等效项。
2个回答

48
您可以使用Package.InstalledLocation来访问您的安装文件夹。 因此,您的代码可能如下所示:
StorageFolder appInstalledFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFolder assets = await appInstalledFolder.GetFolderAsync("Assets");
var files = await assets.GetFilesAsync();

哎呀,太快了,谢谢你。有趣的是我之前用过Package.InstalledLocation,而专注于ms-apps:///方案让我忘记了它。再次感谢 - 你节省了我的时间。 - user5525674
2
@user5525674 没问题,我只是路过而已 ;) - Romasz
对我来说,如果GetFolderAsync("SomeFolder")为空,它将抛出异常。 - jchristof
如果文件夹不存在,则会抛出异常-这是正常的。 - Romasz

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接