2013-04-02 31 views
0

我寫我的第一WP7應用程序,我有奇怪的問題就是:獨立存儲 - 延遲和錯誤的工作

   case "pn_s":    
       IsolatedStorageFile isoStorage = IsolatedStorageFile.GetUserStoreForApplication(); 
       //IsolatedStorageFileStream isoStream = isoStorage.CreateFile("plan_zajec_pn.txt"); 
       IsolatedStorageFileStream isoStream = new IsolatedStorageFileStream(("plan_zajec_pn.txt"), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None, isoStorage); 
       StreamWriter writer = new StreamWriter(isoStream); 
       string dane=""; 
       for (int i = 0; i < 10; i++) 
       { 
        dane += godzina[i].Text; 
        dane += ";"; 
        dane += przedmiot[i].Text; 
        dane += ";"; 
        dane += sala[i].Text; 
        dane += ";"; 
       } 
       writer.WriteLine(dane); 
       isoStream.Close(); 
       break; 

其實這是行不通的...... 文件創建我重新後打開的應用程序,但它是空的,我檢查了「丹麥」,它包含日期

回答

0

當使用StreamWriter時,您不能關閉基礎流,或者寫入器可能沒有足夠的時間來寫所有的數據。關閉作家,它會照顧關閉流。另外,即使發生錯誤,您也應該將您的流放在using語句中以關閉它們。

最終,你的代碼應該是這樣的:

case "pn_s":    
    using (var isoStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
    { 
     using (var isoStream = new IsolatedStorageFileStream(("plan_zajec_pn.txt"), FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None, isoStorage)) 
     { 
      using (var writer = new StreamWriter(isoStream)) 
      { 
       string dane = ""; 

       for (int i = 0; i < 10; i++) 
       { 
        dane += godzina[i].Text; 
        dane += ";"; 
        dane += przedmiot[i].Text; 
        dane += ";"; 
        dane += sala[i].Text; 
        dane += ";"; 
       } 

       writer.WriteLine(dane); 
      } 
     } 
    } 

    break;