yeah i indeed meant a `Delete(CFileItem *item)`
you're doing the exact same check in two different places in this PR and pick the right Delete...() method based on the result of that check. so that should be wrapped in a separate method imo. how would that make recursion any more complicated?