下面这段代码功能是把 把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? ");
}
}
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
Eclipse菜单里
Project-Clean。
重新build下。