2012-09-22 61 views
0

我有一個應用程序,在某個時刻必須創建一個臨時文件,然後刪除它。所以我在考慮是否可以創建一個臨時文件到內存中而不是直接寫入磁盤。然後我想從內存中讀取它來執行一些操作,最後在做一些事情之後,如果從內存中刪除。如果可能的話,在.NET Framework和C#中如何做到這一點。另外,可以通過直接使用內存而不是使用磁盤來影響性能嗎?StreamWriter:有沒有辦法寫入內存而不直接寫入磁盤?

我想直接使用內存而不是磁盤,因爲我害怕某種Windows權限,不允許將文件寫入磁盤的某些位置......所以另一個疑問是:如果使用磁盤而不是內存有沒有一個安全的地方寫入臨時文件,避免Windows XP,Vista,7,8的寫權限衝突?我的意思是,一個永遠安全地寫入臨時文件然後刪除它的地方。也許,在用戶\ Local Settings \ Temp文件夾中?這是最好的地方嗎?我想知道一個安全的地方來保存臨時文件,然後刪除它們適用於windows版本:XP,Vista,7和8.

謝謝。

回答

-2

你應該能夠編寫從Stream類繼承自己的類,重寫它的方法(讀/寫等),並在其內部維護自己的StringBuilder或任何適合你的東西。一切都將在記憶中,當然它會非常快。

我認爲XP有「Documents and Settings」,Vista/7有Users文件夾,每個用戶都有自己的地方可以寫臨時文件,你不應該在這裏寫下問題。你在想什麼是正確的。

+0

如果圓形輪已經存在於.NET框架中,請不要發明自己的方形輪。 – zeebonk

+0

其實它不是一個方形的車輪,我認爲你有識別車輪的問題?這是一個完美的輪子,當你自己製作(偶爾會有),而不是在社交網絡上浪費時間,分享無用的信息時,你發現你是一個更好的程序員。是的,我同意MemoryStream在這裏絕對相關,它實際上跳過了我的想法,我的壞處。 – user734028

+0

有趣的aproach!但是不要忘記Int32.MaxValue的StringBuilder大小限制 –