public bool Save()
{
FileInfo tmp = new FileInfo(File.FullName + ".tmp");
try
{
tmp.Delete();
using (FileStream fs = tmp.Create())
{
Serialize(fs, false);
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
try
{
tmp.Delete();
}
catch
{
}
return false;
}
try
{
FileInfo bak = new FileInfo(File.FullName + ".bak");
bak.Delete();
if (File.Exists)
{
tmp.Replace(File.FullName, bak.FullName);
}
else
{
tmp.MoveTo(File.FullName);
}
return true;
}
catch (Exception ex)
{
Console.WriteLine(ex);
try
{
tmp.Delete();
}
catch
{
}
return false;
}
}