public static void RemoveUnnecessaryDirectories()
{
var root = StorageContext.Search.IndexDirectoryPath;
if (!System.IO.Directory.Exists(root))
return;
var unnecessaryDirs = System.IO.Directory.GetDirectories(root)
.Where(a => Char.IsDigit(System.IO.Path.GetFileName(a)[0]))
.OrderByDescending(s => s)
.Skip(2).Where(x => Deletable(x));
foreach (var dir in unnecessaryDirs)
{
try
{
System.IO.Directory.Delete(dir, true);
}
catch (Exception e)
{
Debug.WriteLine(String.Concat("Cannot delete the directory: ", dir, ", ", e.Message));
Logger.WriteWarning("Cannot delete the directory: " + dir, Logger.EmptyCategoryList, new Dictionary<string, object> { { "Reason", e.Message }, { "StackTrace", e.StackTrace } });
}
}
}
private static bool Deletable(string path)