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

时间:2013-06-10 04:13:36

标签: c# windows-8 windows-runtime microsoft-metro storagefile

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

1 个答案:

答案 0 :(得分:1)

我碰巧解决了这个问题。

GetFolderFromPathAsync仅接受&#39; \&#39; (反斜杠),而不是&#39; /&#39; (削减)。 当我使用Unity Project中的Application.dataPath时,它也会报告此错误。 现在我用

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

获取Unity的资源文件夹。