class SimpleFileSystemProvider implements FileSystemProvider {

    @Override
    public boolean deleteIfExists(final Path path,
                                  final DeleteOption... options)
            throws DirectoryNotEmptyException, IOException, SecurityException {
        checkNotNull("path",
                     path);
        synchronized (this) {

            final File file = path.toFile();
            try {
                if (file.isDirectory() && !deleteNonEmptyDirectory(options) && file.list().length > 0) {
                    throw new DirectoryNotEmptyException(path.toString());
                }

                final boolean result = file.exists();

                try {
                    FileUtils.forceDelete(file);
                } catch (final FileNotFoundException ignore) {
                } catch (java.io.IOException e) {
                    throw new IOException(e);
                }

                return result;
            } finally {
                toGeneralPathImpl(path).clearCache();
            }
        }
    }

    public  SimpleFileSystemProvider();
    protected  SimpleFileSystemProvider(final File[] roots,
                                       final OSType osType);

}