标题总结得很好。我知道我可以使用以下方法获取嵌入式资源名称:
var assembly = System.Reflection.Assembly.GetExecutingAssembly();
string[] files = assembly.GetManifestResourceNames();
但我希望能够仅从特定文件夹中获取嵌入式资源。或者至少能够区分来自不同文件夹的嵌入资源。
最佳答案
资源以下列格式返回。
[Namespace].[Folder].[Filename]
请注意,路径中的所有文件夹均以.
分隔。因此,如果您有一个具有以下配置的嵌入式资源
myproject.csproj (Namespace = com.mycompany.myproject) - Resources - Images - Icons - my_icon.ico
The resource name would be...
com.mycompany.myproject.Resources.Images.Icons.my_icon.ico
如果你想从一个特定的文件夹中选择所有,你可以使用下面的LINQ表达式或者根据你的需要修改它。
string prefix = "your_namespace.your_folder."
var resourceNames = Assembly.GetExecutingAssembly()
.GetManifestResourceNames()
.Where(name => name.StartsWith(prefix));
关于C#从特定文件夹中获取嵌入资源或区分不同文件夹中的嵌入资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15955973/