我有一個方法需要一個字符串參數,它是文本文件的文件路徑。我希望能夠傳入我已經作爲資源嵌入到我的程序集中的文本文件。在C#中,是否有一種方法可以獲取嵌入資源文件的字符串路徑引用?
有什麼辦法可以獲得一個嵌入式文本文件的字符串引用,以便它可以作爲打開StreamReader的文件路徑嗎?
謝謝。
我有一個方法需要一個字符串參數,它是文本文件的文件路徑。我希望能夠傳入我已經作爲資源嵌入到我的程序集中的文本文件。在C#中,是否有一種方法可以獲取嵌入資源文件的字符串路徑引用?
有什麼辦法可以獲得一個嵌入式文本文件的字符串引用,以便它可以作爲打開StreamReader的文件路徑嗎?
謝謝。
您可以使用Assembly.GetManifestResourceStream(resource_name_of_the_file)
訪問該文件的流,將其寫入到TEMP目錄,並使用此路徑。
例如,如果你在路徑「資源\文件\ FILE.TXT」在你的項目中的文件和項目的組件默認命名空間是「RootNamespace」,你可以從內部訪問文件的流這個程序集的代碼與
Assembly.GetExecutingAssembly().GetManifestResourceStream("RootNamespace.Resources.Files.File.txt")
是否有任何方法可以獲取對嵌入文本文件的字符串引用,以便它可以用作打開StreamReader的文件路徑?
不,嵌入式資源不是單獨的文件,而是嵌入到可執行文件中。但是,您可以使用StreamReader
獲取您可以讀取的流。
var name = "...";
using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name))
using (var streamReader = new StreamReader(stream)) {
// Read the embedded file ...
}
經過許多小時的搜索,我可以確認這是唯一的方法(afaik)。 – 2016-01-29 14:19:55