【问题标题】:How to get Resources and their names in a list?如何在列表中获取资源及其名称?
【发布时间】:2015-02-21 13:48:27
【问题描述】:

这是我的问题场景:-

  1. 我在项目的 Resources 文件夹中添加了很多图像和其他文件(如 .wav)。图像文件的名称有“woof1”、“woof2”.....“env1”、“env2”......“alpha1”、“alpha2”......等等。

  2. 我想访问仅以特定前缀(如“woof#”或“alpha#”)开头的所有图像文件,并希望将这些图像存储在列表中,并将检索到的图像的名称存储在列表中。

请帮助我。我的项目是制作一个记忆游戏……前缀定义了不同类别的图像。我真的需要知道这一点。

【问题讨论】:

  • 您是否也将它们添加到了项目中的资源文件中,或者您只是将它们添加到了 Resources 文件夹中?
  • 谢谢大家的帮助。我采用了一种新方法。我为 diff 中的图像创建了单独的文件夹。类别。再次感谢你:)

标签: c# list picturebox


【解决方案1】:

资源是否作为资源添加到项目文件中?如果是这样,您可以使用Assembly.GetManifestResourceNames

来自MSDN: Finding the Names of Resources in an Assembly 的示例代码:

System.Reflection.Assembly thisExe; 
thisExe = System.Reflection.Assembly.GetExecutingAssembly();
string [] resources = thisExe.GetManifestResourceNames();
string list = "";

// Build the string of resources.
foreach (string resource in resources)
    list += resource + "\r\n";

然后在过滤资源名称以获取您需要的资源名称后(例如,使用 LINQ 或创建新的 List 并将其填充到 foreach 循环中等),使用 Assembly.GetManifestResourceStream 实际 get 资源。

如果您没有将文件添加到项目中,我强烈建议您这样做,因为这意味着如果您发布它,您将有更少的文件要分发。请参阅MSDN: resource files 了解如何执行此操作。

【讨论】:

    【解决方案2】:

    在这篇文章中查看我的答案:

    https://stackoverflow.com/a/28558647/2416394

    而不是按名称获取资源,您可能会使用

    var list = Assembly.GetExecutingAssembly().GetManifestResourceNames();
    

    获取资源并对其运行 LINQ 过滤器。

    【讨论】:

      猜你喜欢
      • 2012-04-23
      • 2015-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-09
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多