我有一个字节数组,我创建一个文件并将字节数组写入该文件,然后关闭记录。由于条目已关闭,我想重命名文件扩展名。
我的代码:
FileOutputStream newFile = new FileOutputStream(rb_Path[0]+"\\"+file_id+".d"); //было .dat
//Записать массив полученных байт в новый файл .dat
newFile.write(byteNewFile);
newFile.flush();
//Закрываем создание нового файла
newFile.close();
File file_d = new File(rb_Path[0]+"\\"+file_id+".d");
//File file_dat = new File(rb_Path[0]+"\\"+file_id+".dat");
//file.d переименовать в file.dat
boolean isRenamed = file_d.renameTo(new java.io.File(rb_Path[0] + "\\" + file_id + ".dat"));
System.out.println(isRenamed);
但我得到虚假。结果,该文件没有被重命名(1234.d 到 1234.dat)。
也试过这样:
File file_d = new File(rb_Path[0]+"\\"+file_id+".d"); //Создан
File file_dat = new File(rb_Path[0]+"\\"+file_id+".dat"); //Не создан, служит объектом для rename
//file.d переименовать в file.dat
boolean isRenamed = file_d.renameTo(file_dat);
System.out.println(isRenamed);
但是将扩展名从 .d 更改为 .dat 仍然不起作用。
rb_Path[0]
- 没有无效字符。file_id
是一个 int,例如 1234
所以我什至不知道该怎么办。
请告诉我如何解决这个问题。也许你应该做不同的事情?谁有解决方案?非常感谢您提前。
为了重命名文件,您需要跟踪新旧名称中的字符。
我的工作代码:
(我在 Windows8 上测试过)。我的错误是不了解如何正确使用符号“/”或“”甚至“//”。因此,如果您遇到类似的情况,请记住并注意它。