这是我的问题所在: -
我在项目的Resources文件夹中添加了很多图像和其他文件(如.wav)。图像文件的名称如" woof1"," woof2" ....." env1"," env2" ... ......" alpha1"," alpha2" .....等等。
我想访问所有以ONLY特定前缀开头的图像文件(例如" woof#"或" alpha#")并希望将这些图像存储在列出并在List中存储检索到的图像的名称。
请帮帮我。我的项目是制作记忆游戏......前缀定义了不同类别的图像。我真的需要知道这一点。
答案 0 :(得分: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
实际上获取资源。
如果没有将文件添加到项目中,我强烈建议您这样做,因为这意味着如果您发布文件,您将分发较少的文件。有关如何执行此操作,请参阅MSDN: resource files。
答案 1 :(得分:1)
在这篇文章中看到我的回答:
https://stackoverflow.com/a/28558647/2416394
您可以使用
代替按名称获取资源var list = Assembly.GetExecutingAssembly().GetManifestResourceNames();
获取资源并对它们运行LINQ过滤器。