【问题标题】:How to access folder & get StorageFile list in WinRT class library?如何在 WinRT 类库中访问文件夹并获取 StorageFile 列表?
【发布时间】:2013-06-10 04:13:36
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    获取 Unity 的资源文件夹。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-06
      • 2011-01-15
      • 1970-01-01
      • 2014-04-10
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多