We should document this is thrown if {@code f} did not exist when the method was called.

This can therefore cause IOExceptions during race conditions when multiple concurrent threads all try to delete the same file.  If the caller doesn't care, they need to be careful about using this method.