我在我的C#項目中包含了一個embebbed資源;我知道它的名字以及如何引用它,所以我想知道是否有任何方法可以獲得它的絕對路徑...在那裏?如何獲取embebbed資源的路徑?
回答
像其他人一樣,嵌入式資源嵌入在編譯程序集中,並且不存在於文件系統上;如果您正在尋找文件系統上的文件,則應將構建操作更改爲「無」,並將「複製到輸出目錄」更改爲其中一個副本值。
然而,如果你不意味着嵌入資源,那麼它可以通過使用Assembly類的GetManifestResourceStream方法如下進行訪問:
GetType().Assembly.GetManifestResourceStream("someresourcestringhere")
(以上代碼假定要從類訪問所述資源在同一個大會內)。
嵌入資源通常遵循以下格式(任何空格都被保留),這是你會傳遞到GetManifestResourceStream方法的字符串:
默認項目namespace.folder名稱(如果有的話).file名
就我個人而言,我發現獲取此字符串的最簡單方法是使用反編譯器工具(如Telerik的Just Decompile)來查看程序集內部並獲取您要查找的文件的完整資源名稱。
我知道這是一個相當古老的答案,但我想要的一點信息似乎在輸入錯誤中丟失了!你已經說過「任何空間都被替換爲**空格**」。他們真的取代了什麼? – OlduwanSteve
我測試了它,並且更新了你的答案。 – OlduwanSteve
嵌入式資源正是:嵌入式。這意味着,它包含在程序集中,並且在編譯後不會以物理文件的形式存在(如果這就是您要找的內容)。
非常有幫助!謝謝。你可以建議一個替代的.xml文件我想用反射來定位?謝謝! – Rachael
嵌入式資源使用簡單,無需反思。如果您希望嵌入數據(即構建後無法配置),請使用它們。否則,您可能希望使用「Content」構建操作在構建後使文件就位 - 在這種情況下,請使用良好的舊I/O API來訪問它。 –
System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
如何
Console.WriteLine(WindowsFormsApplication1.Properties.Resources.myfile);
其中MYFILE是一個嵌入式的ini文件
- 1. Unity:獲取資源路徑
- 2. 如何使用子路徑獲取資源路徑使用NSBundle
- 3. 如何獲得資源的路徑?
- 4. 使用ClassLoader獲取資源的路徑
- 5. 無法獲取類路徑的資源
- 6. Java獲取資源的相對路徑
- 7. 獲取Android資源的路徑
- 8. Visual C++獲取資源的路徑
- 9. 無法獲取資源路徑
- 10. 無法獲取資源路徑
- 11. 從Maven資源獲取文件路徑
- 12. 在MFC中獲取資源路徑
- 13. Rails - 如何獲取資源的文件路徑(不是url路徑)?
- 14. 如何從EJB中獲取Web資源的路徑?
- 15. 如何在沒有FacesContext的情況下獲取資源路徑?
- 16. 如何在資源文件中獲取/調用.wav的路徑
- 17. 如何在Rails 3中獲取資源的絕對路徑?
- 18. 如何獲取iPhone資源文件夾的路徑?
- 19. 如何獲取Vaadin資源路徑的URL?
- 20. 如何獲取j2ee項目中資源的相對路徑
- 21. 如何獲取資源文件的路徑?
- 22. 如何從資源文件中獲取圖像路徑
- 23. 如何從eclipse插件獲取資源路徑
- 24. 如何從圖像路徑獲取資源ID?
- 25. Rails資源路徑
- 26. tastypie資源路徑
- 27. svn資源路徑
- 28. 資源類路徑
- 29. 如何在java中獲取實際的web資源源文件路徑?
- 30. 如何縮短嵌套的資源路徑的路徑
獲取其絕對路徑從什麼樣的信息?你真的想過什麼樣的「絕對路徑」?如果你能舉一個具體的例子,這將有所幫助。 –
我想將一個INI文件包含到我的項目中,然後閱讀它... –
但是,如果它是* embedded *資源,則它位於程序集中。在那一點上,你的意思是「絕對路徑」?這不是一個你可以參考的文件。 –