2016-09-28 66 views
1

我試圖做兩件事情。我想將一個文本文件嵌入到我的項目中,以便我可以利用它並對其進行修改,但同時我不希望在將項目發送給用戶時將其打包(包含在exe文件中的IE )。在資源中嵌入文本文件C#

我看了一下,已經有了很多問題,但我似乎無法得到任何工作。這是我迄今採取的步驟;

添加的文本文件,以我的「資源文件夾」

enter image description here

構建行動「內容」輸出目錄「不要複製」

enter image description here

我再試試在我的代碼中訪問文件;

if (File.Exists(Properties.Resources.company_map_template)) 
{ 
    MessageBox.Show("Test"); 
    var objReader = new StreamReader(Properties.Resources.company_map_template); 
    string line = ""; 
    line = objReader.ReadToEnd(); 
    objReader.Close(); 
    line = line.Replace("[latlong]", latitude + ", " + longitude); 
    mapWebBrowser.NavigateToString(line); 
} 

在MessageBox永遠不會出現這對我意味着它不能找到該文件,不知何故地方我做錯了什麼。如何將文件添加到我的項目中,以便我不需要使用exe分發,同時能夠在代碼中訪問它?

+0

我認爲問題是它不是很相同,當你有一個嵌入式文件,所以你不能使用'File.Exists'檢查它的存在。如果你想閱讀一個嵌入式文件,[檢查出來](http://stackoverflow.com/questions/3314140/how-to-read-embedded-resource-text-file)。我不認爲你將能夠寫入嵌入式文件,因爲這基本上是修改EXE文件。通常應該使用應用程序的APP DATA文件夾處理這樣的事情 – musefan

+0

@musefan感謝您的建議,我會帶他們參加。 – CBreeze

回答

0

我會用以下內容:

BuildActionNone(不需要)

和文件下的文件(使用DragAndDrop從SolutionExplorer到打開Resources.resx)

訪問添加到Resources.resx你的文字:

using YOURNAMESPACE.Configuration.Properties; 

string fileContent = Resources.company_map_template; 

然後你就完成了。你不需要通過訪問通過StreamReader