code: public static List<File> changeAllFilenameSuffix(final File file, final String oldSuffix,
  		final String newSuffix, final boolean delete)
  		throws IOException, FileDoesNotExistException, FileIsADirectoryException
  	{
  		boolean success;
  		List<File> notDeletedFiles = null;
  		final String filePath = file.getAbsolutePath();
  		final String suffix[] = { oldSuffix };
  		final List<File> files = FileSearchExtensions.findFiles(filePath, suffix);
  		final int fileCount = files.size();
  		for (int i = 0; i < fileCount; i++)
  		{
  			final File currentFile = files.get(i);
  			success = RenameFileExtensions.changeFilenameSuffix(currentFile, newSuffix, delete);
  			if (!success)
  			{
  				if (null != notDeletedFiles)
  				{
  					notDeletedFiles.add(currentFile);
  				}
  				else
  				{
  					notDeletedFiles = new ArrayList<>();
  					notDeletedFiles.add(currentFile);
  				}
  			}
  		}
  		return notDeletedFiles;
  	}
docs: Changes all the Filenames with the new Suffix recursively. If delete is true its deletes the
  existing file with the same name.
  
  @param file
  The file where to change the Filename with the new Suffix.
  @param oldSuffix
  All files that have the old suffix will be renamed with the new Suffix.
  @param newSuffix
  The new suffix.
  @param delete
  If its true than its deletes the existing file with the same name. But before it
  copys the contents into the new File.
  @return the list of files
  @throws IOException
  Signals that an I/O exception has occurred.
  @throws FileDoesNotExistException
  If the file does not exist.
  @throws FileIsADirectoryException
  the file is A directory exception