Files
Common/Settings/Extensions.cs
2014-04-30 16:57:42 -04:00

42 lines
1.5 KiB
C#

using System.Configuration;
using System.IO;
using Common.Debug;
namespace Common.Settings
{
public static class Extensions
{
public static void DeleteOldConfigurationFiles(this ApplicationSettingsBase dataSet)
{
// Get information about where the current configuration data is stored
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
// Create a file object for the configuation file
FileInfo configFile = new FileInfo(config.FilePath);
// If we can't get the parent directories then don't bother
if (configFile.Directory == null || configFile.Directory.Parent == null)
return;
// Loop over all directories of the configuration file parent directory
foreach (DirectoryInfo directory in configFile.Directory.Parent.GetDirectories())
{
// Delete the directory if it isn't the current config file directory
if (directory.FullName != configFile.Directory.FullName)
{
try
{
directory.Delete(true);
}
catch (IOException exception)
{
// Another instance is probably accessing it - this directory will be deleted later on another run
Tracer.WriteException(exception);
}
}
}
}
}
}