2013-04-11 36 views

回答

10

以下列格式返回資源。

[Namespace].[Folder].[Filename] 

請注意,路徑中的所有文件夾由.分隔。所以,如果你有一個嵌入的資源具有以下配置

 
myproject.csproj (Namespace = com.mycompany.myproject) 
- Resources 
    - Images 
    - Icons 
     - my_icon.ico 

資源名稱將是...

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)); 
+0

此代碼將拋出一個錯誤,因爲它不能轉換IEnumerable的字符串。此外,它不會考慮同一文件夾下的多個文件 – Flavia 2013-04-11 19:10:53

+0

糟糕,從另一個項目粘貼該代碼,並忘記修改類型。我現在糾正了它。 – 2013-04-11 19:14:11

+0

現在它值得一票:) – Flavia 2013-04-11 19:20:33

3

如果您創建一個名爲圖片的文件夾,然後將文件存在,那麼資源的名稱將成爲Assembly.Images.fileName。

所以,你可以嘗試這樣的:

var assembly = System.Reflection.Assembly.GetExecutingAssembly(); 

var names = assembly.GetManifestResourceNames().Where (n => n.Contains(".Images."));