Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# Get embedded resources from specific folder or distinguish between embedded resources in different folders

The title sums it up pretty well. I know I can get the embedded resource names using:

        var assembly = System.Reflection.Assembly.GetExecutingAssembly();
        string[] files = assembly.GetManifestResourceNames();

But I'd like to be able to get the embedded resources from only a specific folder. Or at least be able to distinguish between embedded resources from different folders.

like image 717
Brandon Avatar asked Apr 11 '13 18:04

Brandon


People also ask

What C is used for?

C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...

What is the full name of C?

In the real sense it has no meaning or full form. It was developed by Dennis Ritchie and Ken Thompson at AT&T bell Lab. First, they used to call it as B language then later they made some improvement into it and renamed it as C and its superscript as C++ which was invented by Dr.

What is C in C language?

C is an imperative, procedural language in the ALGOL tradition. It has a static type system. In C, all executable code is contained within subroutines (also called "functions", though not in the sense of functional programming).


1 Answers

The resources are returned in the following format.

[Namespace].[Folder].[Filename]

Note that all folders in the path are separated by .'s. So if you had an embedded resource with the following configuration

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

If you want to select all from a specific folder, you could use the following LINQ expression or modify it according to your needs.

string prefix = "your_namespace.your_folder."

var resourceNames = Assembly.GetExecutingAssembly()
    .GetManifestResourceNames()
    .Where(name => name.StartsWith(prefix));
like image 125
Timothy Schoonover Avatar answered Sep 22 '22 13:09

Timothy Schoonover