Here you can find the source of copyFileUnique(File in, File outDir)
static public File copyFileUnique(File in, File outDir)
//package com.java2s; /*// www .ja v a 2 s .com * photo-manager is a program to manage and organize your photos; Copyright (C) 2010 Dietrich Hentschel * * This program is free software; you can redistribute it and/or modify it under the terms of the * GNU General Public License as published by the Free Software Foundation; * either version 2 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with this program; * if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ import java.io.*; public class Main { /** * Write file with an unique name. * */ static public File copyFileUnique(File in, File outDir) { if (in.isFile() == false || outDir.isDirectory() == false) { return null; } // make outFile int n = 0; String name = getWithoutExtension(in.getName()); String ext = getExtension(in.getName()); File out = new File(outDir.getPath() + File.separator + in.getName()); while (out.isFile()) { n++; out = new File(outDir.getPath() + File.separator + name + "_" + n + "." + ext); } if (copyFile(in, out)) { return out; } return null; } public static String getWithoutExtension(String name) { int i = name.lastIndexOf('.'); if (i > 0 && i < name.length() - 1) { return name.substring(0, i); } return name; } public static String getExtension(File f) { String ext = ""; String s = f.getName(); int i = s.lastIndexOf('.'); if (i > 0 && i < s.length() - 1) { ext = s.substring(i + 1); } return ext; } public static String getExtension(String s) { String ext = ""; // String s = f.getName(); int i = s.lastIndexOf('.'); if (i > 0 && i < s.length() - 1) { ext = s.substring(i + 1); } return ext; } static public boolean copyFile(File in, File out) { BufferedInputStream bufin = null; BufferedOutputStream bufout = null; try { FileInputStream fis = new FileInputStream(in); bufin = new BufferedInputStream(fis); out.delete(); FileOutputStream fos = new FileOutputStream(out); bufout = new BufferedOutputStream(fos); byte[] buffer = new byte[1024]; int len; while (bufin.available() != 0) { len = bufin.read(buffer); bufout.write(buffer, 0, len); } ; } // try catch (FileNotFoundException fnfe) { // System.out.println(in.getPath() + " does not exist!"); } catch (IOException ioe) { // System.out.println("Error reading/writing files!"); } finally { try { if (bufin != null) bufin.close(); if (bufout != null) bufout.close(); } catch (IOException ioe) { } } return true; } }