internal void RemoveChild(FileSystemNode nodeToRemove)
{
nodeToRemove.VerifyCanBeRemoved();
nodeToRemove.Dispose();
if (Children.Remove(nodeToRemove) == false)
throw new InvalidOperationException(string.Format("Trying to remove a node '{0}' that doesn't exist.", nodeToRemove));
TouchLastWriteTime();
TouchLastAccessTime();
}