The following code snippet shows how to get unique file name when saving file in java. It first checks if already a file exist with the specified name, then it appends a number to end.

public static File getUniqueFilePath(String parent, String child, String fileName) {
	File dir = new File(parent, child);
	String uniqueName = getUniqueFileName(parent, child, fileName);
    return new File(dir, uniqueName);

public static String getUniqueFileName(String parent, String child, String fileName) {
     final File dir = new File(parent, child);
     if (!dir.exists()) {

     int num = 0;
     final String ext = getFileExtension(fileName);
     final String name = getFileName(fileName);
     File file = new File(dir, fileName);
     while (file.exists()) {
         file = new File(dir, name + "-" + num + ext);
     return file.getName();

public static String getFileExtension(final String path) {
     if (path != null && path.lastIndexOf('.') != -1) {
         return path.substring(path.lastIndexOf('.'));
     return null;

public static String getFileName(String fileName) {
     return fileName.substring(0, fileName.lastIndexOf('.'));
Tagged in : #Java


Please note: We reserve the right to delete comments that contains snarky remarks, offensive or off-topic. To know more read our comments policy.