Мне кажется, что все, что вам нужно сделать, это изменить имя выбранного файла, а не переименовывать файл в файловой системе. В этом случае вы не используете File.renameTo
. Вы просто меняете File
. Должно работать что-то вроде следующего:
File f = fc.getSelectedFile();
String name = f.getAbsoluteFile()+".txt";
f = new File(name);
File.renameTo
пытается переименовать файл в файловой системе. Например:
File oldFile = new File("test1.txt");
File newFile = new File("test2.txt");
boolean success = oldFile.renameTo(newFile); // renames test1.txt to test2.txt
После этих трех строк success
будет true
, если файл test1.txt
может быть переименован в test2.txt
, и false
, если переименование было неудачным (например, test1.txt
не существует, это открыть в другом процессе, отказано в разрешении и т. д.)
Я рискну предположить, что вы пытаетесь переименовать, потому что вы пытаетесь переименовать каталог (вы используете JFileChooser
с опцией DIRECTORIES_ONLY
). Если у вас есть программы, использующие файлы в этом каталоге, или командная строка, открытая внутри, они будут возражать против того, чтобы этот каталог был переименован.