Witam,

Mam problem ze zmianą nazwy pliku w javie. Oto mój kod:

public class Main {

	public static void main(String[]args) throws IOException{
		File f = new File("D:/workspace/foo.txt");
		System.out.println(f.getParent());
		f = changeFileName(f);
		f.renameTo(new File("D:/workspace/foo.txt"));
	}

	private static File changeFileName(File f) throws IOException{
		File temp = File.createTempFile("data", null, f.getParentFile());
		temp.delete();
		if(!f.exists())
			return new File(temp.getAbsolutePath());
		if(!f.renameTo(temp))
			throw new IOException("Cannot rename file");
		return f;
	}
}

Ogólnie chodzi o to, by w danej metodzie dwa razy było wykonanie zmiany nazwy pliku, przy czym pierwszy raz odbywać się to powinno przy pomocy metody File.createTempFile, by była zagwarantowana unikalna nazwa dla pliku. Odpowiada za to metoda changeFileName. Problem na który się natknąłem polega na tym, że po raz pierwszy jest zmieniana nazwa, jednak za drugim razem już niestety nie. Proszę o pomoc