日期:2014-05-20  浏览次数:20630 次

在调试时出现的关于java File的renameto的问题
下面这段代码功能是把 把Test目录下的aaa.xls文件移动到桌面上并重命名bbb.xls。直接运行是没有什么问题。
但是如果开启调试,再执行完File newFile = new File("C:\\Users\\admin\\Desktop\\bbb.xls")这步后(还没执行下面的输出语句),Test文件夹下的aaa.xls文件已经没有了,而桌面上已经出现了bbb.xls并且里面的内容就是aaa.xls的内容。
其效果相当于已经先执行了下面的file.renameTo(new File("C:\\Users\\admin\\Desktop\\bbb.xls"))。请问下这是为什么?

  /**
* 把Test目录下的aaa.xls文件移动到桌面上并重命名bbb.xls
*/
public static void test1(){
//源文件
File file = new File("C:\\Users\\admin\\Desktop\\Test\\aaa.xls");
System.out.println("is source file exist? "+file.exists());

//目标文件
File newFile = new File("C:\\Users\\admin\\Desktop\\bbb.xls");
System.out.println("is dest file exist? "+newFile.exists());
System.out.println("is source file exist? "+file.exists());

if(newFile.exists()){//目标文件是否已存在,存在则删除
System.out.println("is delete success ? "+ newFile.delete());

if(file.exists()){
System.out.println("does renameto succeed? "+file.renameTo(new File("C:\\Users\\admin\\Desktop\\bbb.xls")));
} else{
System.out.println("rename file fail? ");
}
}


------解决方案--------------------
探讨

引用:

System.out.println("does renameto succeed? "+file.renameTo(new File("C:\\Users\\admin\\Desktop\\bbb.xls")));

先执行括号里面的逻辑(重命名),再进行字符串的输出....有问题么?


我说的是在执行完File newFile = new File……

------解决方案--------------------
Eclipse菜单里
Project-Clean。

重新build下。