public static void CheckSettings()
{
try
{
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
}
catch (ConfigurationErrorsException ex)
{
string filename = string.Empty;
if (!string.IsNullOrEmpty(ex.Filename))
{
filename = ex.Filename;
}
else
{
var innerEx = ex.InnerException as ConfigurationErrorsException;
if (innerEx != null && !string.IsNullOrEmpty(innerEx.Filename))
{
filename = innerEx.Filename;
}
}
if (!string.IsNullOrEmpty(filename))
{
if (File.Exists(filename))
{
var fileInfo = new FileInfo(filename);
var watcher
= new FileSystemWatcher(fileInfo.Directory.FullName, fileInfo.Name);
Tools.WriteDebug(string.Format("Deleting corrupt file {0}", filename), ex.Message);
File.Delete(filename);
if (File.Exists(filename))
{
watcher.WaitForChanged(WatcherChangeTypes.Deleted);
}
}
}
}
}