使用不同扩展名的文件中的字符串重命名文件

时间:2017-05-05 13:30:16

标签: java file renaming

我需要重命名名为.afp文件的.txt文件。我偶然发现了无数的“解决方案”,同时试图让这件事情起作用并没有任何帮助。

假设我在C:/test/a/Mytes t.txt中有一个txt文件,我想重命名.afp中的C:/files/b/Testf ile.afp文件。这就是我正在尝试做的事情(根据本网站上的解决方案)并且它无法正常工作。我剪切了.txt文件的扩展名,只获取文件名:

String fileNameNoExt=fileName.substring(0, fileName.lastIndexOf('.'));
//fileName is .txt file name
File file = new File(afpSRC, afpName);
file.renameTo(new File(afpSRC, fileNameNoExt + ".afp"));

afpSRC包含.afp文件所在文件夹的路径,afpName是文件名。

有谁可以告诉我为什么这不起作用且.afp文件名保持不变?

1 个答案:

答案 0 :(得分:0)

可能是因为File file = new File(afpSRC, afpName);没有引用现有文件。

我怀疑afpSRC不是父路径,或者afpName不是文件名。或两者兼而有之?

要进行调试,您应首先检查该文件是否存在 如果它不存在,则抛出异常 除了以任何方式(调试和最终代码)之外,您应该通过renameTo()检查返回的值并进行处理。

以下是示例代码:

String fileNameNoExt=fileName.substring(0, fileName.lastIndexOf('.'));
//fileName is .txt file name
File file = new File(afpSRC, afpName);
if (!file.exists()){
   throw new RuntimeException("file not found = " + file);
}

boolean isRenamed = file.renameTo(new File(afpSRC, fileNameNoExt + ".afp"));
System.out.println("isRenamed = " + isRenamed);
if (!isRenamed){
   // handle the problem
}