在我的应用程序中,有一个文件可用于说 one.pdf 。我想在同一目录中将文件名更改为 two.pdf 。 我尝试使用不起作用的java。
File f1=new File("E:\\one.pdf");
File f2=new File("E:\\two.pdf");
f1.renameTo(f2);
答案 0 :(得分:2)
您的代码存在重大错误:
您不会检查File#renameTo()的结果。如果您已激活UAC或目标无效,则重命名可能会失败。
public class Rename {
public static void main(String[] args) {
File f1=new File("c:\\tools\\one.pdf");
File f2=new File("c:\\tools\\two.pdf");
try{
boolean result = f1.renameTo(f2);
System.out.println("worked? " + result);
}catch (Exception e){
e.printStackTrace();
}
}
}
答案 1 :(得分:0)
我不会立即看到您的代码出现问题,除非这是某种Windows路径或权限问题。如评论中所述,您应始终显示例外或错误结果。
要考虑的一件事是更好地使用现有的File
对象来重命名同一目录中的文件:
// someExistingFile defined above
File destinationFile = new File(someExistingFile.getParentFile(), "two.pdf");
someExistingFile.renameTo(destinationFile);
这将使用现有文件的目录并创建相对于它的新文件。