我想從我的程序中打開MS Word文檔。目前,它可以在設計器模式下找到它,但是當我發佈我的程序時,它找不到該文件。我相信我需要將它嵌入到我的程序中,但我不知道如何做到這一點。這是我當前的代碼來打開文件:在C#中嵌入Word文檔#
System.Diagnostics.Process.Start("Manual.docx");
我覺得需要被嵌入到.exe文件的資源,Word文檔,但我不知道如何做到這一點。
任何人都可以提供一些建議嗎?
我想從我的程序中打開MS Word文檔。目前,它可以在設計器模式下找到它,但是當我發佈我的程序時,它找不到該文件。我相信我需要將它嵌入到我的程序中,但我不知道如何做到這一點。這是我當前的代碼來打開文件:在C#中嵌入Word文檔#
System.Diagnostics.Process.Start("Manual.docx");
我覺得需要被嵌入到.exe文件的資源,Word文檔,但我不知道如何做到這一點。
任何人都可以提供一些建議嗎?
只需將其包含到您的項目中(添加現有項目),然後從打開的菜單中選擇所有文件並選擇您的word文檔。還將文檔複製到Bin/Debug文件夾中。如果您正在使用安裝程序,請將文檔包含在安裝程序中,並且它應該可以正常工作。
右鍵單擊要在解決方案中存儲文件的文件夾,然後選擇添加 - >現有項目。
一旦添加了文件,您可以將項目中文件的Build Action更改爲Embedded Resource而不是Resource。這可以通過轉到文件的VS中的Properties並修改Build Action屬性來完成。
Aaron在添加嵌入資源方面非常合適。執行以下操作來訪問嵌入的資源:
Assembly thisAssembly;
thisAssembly = Assembly.GetExecutingAssembly();
Stream someStream;
someStream = thisAssembly.GetManifestResourceStream("Namespace.Resources.FilenameWithExt");
此處瞭解詳情: How to embed and access resources by using Visual C#
編輯:現在實際運行,您將需要複製該文件在一些臨時目錄的文件。您可以使用以下功能保存流。
public void SaveStreamToFile(string fileFullPath, Stream stream)
{
if (stream.Length == 0) return;
// Create a FileStream object to write a stream to a file
using (FileStream fileStream = System.IO.File.Create(fileFullPath, (int)stream.Length))
{
// Fill the bytes[] array with the stream data
byte[] bytesInStream = new byte[stream.Length];
stream.Read(bytesInStream, 0, (int)bytesInStream.Length);
// Use FileStream object to write to the specified file
fileStream.Write(bytesInStream, 0, bytesInStream.Length);
}
}
當您添加文件時,請確保您選擇「複製到輸出目錄」作爲「始終複製」。這樣您就不必手動將文件複製到bin文件夾。它將永遠爲你複製。部署Pabuc說。 – 2010-12-06 14:29:18