感謝StreamWriter!

昨天從中電投出來,打上車直奔瀋陽北站。路上回想整個系統,忽然想起,上一篇博文《Oracle支撐的asp.net2.0應用中自主實現數據依賴緩存》中,提及“其它的能夠改變任務相關的數據的地方,也同時修改相應緩存文件的內容”,可是程序中在寫入這種緩存監視文件時,並未事先判斷其是否存在,這樣的話,一旦出現某種意外,導致緩存監視文件丟失,程序豈不是要報錯?

 

想到這,立馬掏出本本,打開一個以前的winform程序,在上面加一個按鈕,按鈕點擊事件中放入以下代碼測試(本本上沒裝oracle,無法測試web):

 

System.IO.StreamWriter sw = new System.IO.StreamWriter( Server.MapPath( "c:/Cache/10.cache" ) );
sw.WriteLine( DateTime.Now.ToString() );
sw.Close();
sw.Dispose();

 

運行,點擊按鈕,果然報錯~

 

當時再回去修改已經來不及,只能心想着祈禱不會出現文件丟失的問題吧。

 

今早起來,立即打開機器做這個測試:新建一個任務,刪除其緩存文件,再做查評等需要更新緩存監視文件的操作……咦,居然沒有報錯,而且還自動建立了相應的緩存監視文件!

 

欣喜之餘,打開MSDN查看了一下StreamWriter,關於構造函數public StreamWriter (string path),找到以下內容:

 

path 參數可以是文件名,包括統一命名約定 (UNC) 共享上的文件。如果此文件已存在,將覆蓋它;否則,將創建一個新文件。

 

HOHO~原來如此~這樣就不用擔心啦~

 

可是在winform程序中做的那個測試又怎麼會報錯呢?又測了一下,錯誤信息爲:

 

未能找到路徑“c:/Cache/10.cache”的一部分。

 

原來是由於沒有c:/cache目錄的原因,若改成c:/10.cache,同樣不會報錯,同樣會自動創建了。

發佈了171 篇原創文章 · 獲贊 2 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章