public void GetStatus(string rootPath)
 {
     Status status;
     if (!statusCache.ContainsKey(rootPath))
     {
         status = new Status(rootPath);
         status.OnResult += new StatusResult(status_OnResult);
         statusCache[rootPath] = status;
     }
     else status = statusCache[rootPath];
     ignoreDirty = true;
     status.Update();
 }
 void Status_OnResult(Status status)
 {
     ignoreDirty = false;
     if (OnChange != null) OnChange(this);
 }