在我的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");
}
先谢谢了。
答案 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
}