2010-07-07 53 views
3

打開以字節[]形式存儲在數據庫中的Word文件的最佳方式是什麼?將字節[]作爲文件打開,但實際上並未將其作爲文件保存爲第一個

我必須將一些文檔存儲在Access數據庫中 - Word文件,2003及更高版本 - 在嚴格運行CD的應用程序上。不幸的是,他們必須在數據庫中,不能放在文件夾中。我將它們存儲爲一個OLE對象,並且我可以像byte []一樣讀寫它們。

但是,我不知道在Word中重新打開這些文檔的最佳方式。現在我正在使用FileStream在某處重新創建文件,然後拍攝System.Diagnostics.Process.Start(filename)以打開它。這將在政府計算機上使用,有時可能會有一些時髦的安全規則,所以我不知道這是否是最好的方法。

是否可以打開先前以byte []形式存儲的文件,而不使用保存到硬盤的任何中間文件?我知道他們至少會有Word 2003,所以我願意使用Word互操作。

感謝您的任何意見!

+1

沒有其他選擇。你做得對。 – 2010-07-07 23:43:23

+0

問題:打開的文件是用於編輯還是隻讀?如果是前者,無論如何,用戶的安全問題都將浪費在用戶身上。如果是後者,你真的需要讓他們在Word中打開嗎?如果你只是顯示文字文件,你可以考慮在光盤上放置一個便攜式的openoffice,修改它以適應這個任務 - 儘管我不確定會有多少工作。 – 2010-07-08 00:20:23

+0

它們是隻讀的,應該隨計算機打開.doc/.docx文件打開。我認爲將自己的讀者包括便攜式OpenOffice在內的人打開這些​​文件是相當不受歡迎的。 – 2010-07-08 00:32:17

回答

6

我懷疑你可以在內存中爲Word提供一個文件,而不必將其保存到至少一個RAMDisk或類似的東西。

爲什麼不使用系統臨時文件夾或GetTempFile()方法在使用Word打開文件之前將字節數組寫入文件,然後在完成後清理臨時文件?

string fullPathToATempFile = System.IO.Path.GetTempFileName(); 
// or 
    string tempDirPath = System.IO.Path.GetTempPath(); 
相關問題