打开文件后如何使用Java重命名文件

时间:2018-12-27 11:09:17

标签: java

在我的Java代码中,我正在使用renameTo方法来重命名文件。如果文件已物理关闭,我能够成功完成此操作。但是,如果我要重命名的文件已打开,则无法执行此操作。

如何通过代码关闭文件?

这是代码:

File file = new File("/users/abc.txt");
File newFile = new File("/users/xyz.txt");
if (file.renameTo(newFile)) {
    System.out.println("File rename success");
} else {
    System.out.println("File rename failed");
}

先谢谢了。

1 个答案:

答案 0 :(得分:0)

您无法关闭其他用户打开的Java文件。它高度依赖平台,如果该用户/进程具有比您的进程更高的权限是不可能的,并且如果他/她正在编辑器中编辑该文件,则用户对其进行编辑可能会丢失数据。永远不要那样做。

唯一的方法是等待文件被其他用户关闭,但是,我仍然不鼓励这样做。如果您必须使用该文件,请退出并出现错误。

File file = new File("/users/abc.txt");
File newFile = new File("/users/xyz.txt");
try {
    while (!file.renameTo(newFile)) {
        Thread.sleep(10_000); // wait 10 seconds
    }
} catch (InterruptedException ex) {
// ignore
}