2014-01-27 26 views
0

我正在使用CEG的elency解決方案CSV庫來保存和加載文件中的某些數據。Elency Solutions CSV庫錯誤C#

我的代碼保存並正確加載,但是當我加載,然後嘗試保存錯誤發生時,說另一個進程正在使用該文件。

負載的方法是這樣的:

private void loadfile(string name) 
{ 
    int key = 696969; 
    CsvReader read = new CsvReader("data.csv"); 

    try 
    { 
     do 
     { 
      read.ReadNextRecord(); 
     } while (name != read.Fields[0]); 
     int decAgain = int.Parse(read.Fields[1], System.Globalization.NumberStyles.HexNumber); //convert to int 
     int dec = decAgain^key; 
     MessageBox.Show(dec.ToString()); 

    } 
    catch (Exception) 
    { 
     MessageBox.Show("Not Found"); 
    } 
     read = null; 

} 

正如你所看到的,我有點處置「讀取」對象。

這裏是保存方法:

private void savefile(string encrypted, string name) 
{ 
    CsvFile file = new CsvFile(); 
    CsvRecord rec = new CsvRecord(); 
    CsvWriter write = new CsvWriter(); 

    rec.Fields.Add(name); 
    rec.Fields.Add(encrypted); 

    file.Records.Add(rec); 
    write.AppendCsv(file, "data.csv"); 

    file = null; 
    rec = null; 
    write = null; 

} 

它總是卡上附加的CSV。 我明白這個問題。讀者沒有成功關閉。我怎樣才能正確關閉文件?我試過read.Dispose(),但它不工作。

你能幫我嗎?

Regards

回答

0

使用使用自動處理對象。它可能會解決你的問題。

private void savefile(string encrypted, string name) 
{ 
    using(CsvFile file = new CsvFile()) 
    { 
     using(CsvRecord rec = new CsvRecord()) 
     { 
      using(CsvWriter write = new CsvWriter()) 
      { 

       rec.Fields.Add(name); 
       rec.Fields.Add(encrypted); 

       file.Records.Add(rec); 
       write.AppendCsv(file, "data.csv"); 
      } 
     } 
    } 
} 
+0

雖然錯誤是從加載開始我將你的理論應用於加載部分,它似乎解決了我的問題,謝謝! – Combinu