void RemoveTree (PathData pathData)
{
var toRemove = new List<PathData> ();
toRemove.Add (pathData);
if (pathData.IsDirectory) {
var prefix = pathData.Path + Path.DirectorySeparatorChar;
foreach (var path in pathsDict.Keys)
if (path.StartsWith (prefix)) {
toRemove.Add (pathsDict [path]);
}
}
toRemove.ForEach (Remove);
}