无法用其他文件替换一个文件

时间:2015-10-01 19:28:29

标签: java delete-file

所以我有这段代码应该用旧​​文件交换旧文件(旧文件已经存在,新文件在同一个类的不同方法中生成,但我测试了它并生成了它正确,所以错误不在文件中),但由于某种原因,文件没有被重命名,错误的文件被删除。现在已经坚持了一个多小时,欢迎任何反馈。

 public static void replaceAndDelete() {

        String pathOLD = System.getProperty("user.home");
        pathOLD = pathOLD+"\\cd.txt";
        File fileOLD = new File(pathOLD);
        String pathNEW = System.getProperty("user.home");
        pathNEW = pathNEW+"\\temp.txt";
        File fileNEW = new File (pathNEW);
        fileNEW.renameTo(fileOLD);
        fileOLD.delete();



}

2 个答案:

答案 0 :(得分:1)

您正在将fileNEW重命名为fileOLD,然后删除fileOLD。这意味着您要删除路径,而不是JVM内存中的“虚拟文件”。

带有一些编辑的最终代码是:

String pathOLD = "C:\\test\\old.txt";
String pathNEW = "C:\\test\\new.txt";
File fileOLD = new File(pathOLD);
File fileNEW = new File (pathNEW);
fileOLD.delete();
fileNEW.renameTo(fileOLD);

不要忘记您正在删除旧版本,并使用旧名称重命名新版本。这意味着您应该检查文件的内部,因为我还认为它正在删除错误的文件,而只是删除和重命名。

答案 1 :(得分:0)

看起来这些行不符合您的要求:

fileNEW.renameTo(fileOLD);
fileOLD.delete();