我需要重命名名为.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
文件名保持不变?
答案 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
}