我正在使用CSV库的Elency Solutions 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上。我确实了解这个问题。读者并未成功关闭。如何正确关闭文件?
nb:我尝试过read.Dispose()
,但它不起作用。
您能帮我吗?
问候
使用用于自动处置对象。它可能会解决您的问题。
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");
}
}
}
}