2

我正在创建一个类库。它包含几个图像。在 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 App 创建类库。

4

1 回答 1

1

我只是碰巧解决了这个问题。

GetFolderFromPathAsync 仅接受 '\'(反斜杠),而不接受 '/'(斜杠)。当我Application.dataPath从 Unity Project 使用时,它也会报告此错误。现在我用

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

获取 Unity 的资源文件夹。

于 2017-02-20T05:50:15.010 回答