public void forceRemoveFile(@NonNull Path path) throws IOException {
        for (int retryAttempts = 0; ; retryAttempts++) {
            Optional<IOException> maybeError = tryRemoveFile(path);
            if (maybeError.isEmpty()) return;
            if (retryStrategy.shouldRetry(retryAttempts)) continue;
            IOException error = maybeError.get();
            throw new IOException(retryStrategy.failureMessage(path, retryAttempts), error);
        }
    }
@Test
    public void testForceRemoveFile() throws IOException {
        File file = tmp.newFile();
        touchWithFileName(file);

        PathRemover remover = PathRemover.newSimpleRemover();
        remover.forceRemoveFile(file.toPath());

        assertFalse("Unable to delete file: " + file, file.exists());
    }