java file.renameTo() does rename file but returns false. Why?

前端 未结 3 892
-上瘾入骨i
-上瘾入骨i 2021-01-02 18:23

The problem is that I need the file to move before the rest of my logic will work so when the method returns false I stop execution.

However, when I check on the fil

3条回答
  •  遥遥无期
    2021-01-02 18:51

    Java's File.renameTo() is problematic, especially on Windows, it seems. As the API documentation says:

    Many aspects of the behavior of this method are inherently platform-dependent: The rename operation might not be able to move a file from one filesystem to another, it might not be atomic, and it might not succeed if a file with the destination abstract pathname already exists. The return value should always be checked to make sure that the rename operation was successful.

    You can use apache.commons.io library, which includes FileUtils.moveFile() or also the Files.move() method in JDK 7.

提交回复
热议问题