如何访问文件夹&获取WinRT类库中的StorageFile列表

本文关键字:类库 WinRT 列表 StorageFile 获取 何访问 访问 文件夹 | 更新日期: 2023-09-27 18:17:32

我正在创建一个类库。它包含几个图像。在WinRT应用程序中,我们可以像这样枚举特定文件夹中的文件。

var folder = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFolderAsync("Assets");
var files = await folder.GetFilesAsync(); //which returns List<StorageFile>

在创建类库时,我可以像这样访问单个图像

Assembly assembly = typeof(CLASS_NAME).GetTypeInfo().Assembly;
Stream manifestResourceStream = assembly.GetManifestResourceStream("MyImage.png")

下面一行返回整个程序集的所有资源,而不是特定文件夹的资源。

string[] names = assembly.GetManifestResourceNames();

我试了这个,但没有工作。它抛出异常指定的路径(ms-appx:///LibraryName/Images)包含一个或多个无效字符

var sf = await StorageFolder.GetFolderFromPathAsync("ms-appx:///LibraryName/Images");

现在我有将近100多张图片,所以这样做会很费力,那么我怎么才能访问文件夹获得所有文件的列表呢?

请注意我正在为Windows Store应用程序创建类库。

如何访问文件夹&获取WinRT类库中的StorageFile列表

我碰巧解决了这个问题。

GetFolderFromPathAsync只接受'''(反斜杠),不接受'/'(斜杠)。当我从Unity项目中使用Application.dataPath时,它也报告了这个错误。现在我用

StorageFolder storageFolder = await
StorageFolder.GetFolderFromPathAsync(
    Windows.ApplicationModel.Package.Current.InstalledLocation.Path + 
    @"'Data'Resources"
);