I would be willing to bet you a beer next time we meet up in person that just doing:

  if (!parentFile.delete())
    break;

is faster.  We have to do a system call to read the directory contents, and the operating system is forbidden from letting us remove a directory so long as it has at least one file/directory within it.  So we can accomplish both tasks in one system call by trying the delete, and aborting as soon as it doesn't work.