如何在 java 中关闭打开的文件
How to close an open file in java
我正在尝试在 java 中写入一个 excel 文件,并将其保存在共享文件夹中。但如果文件当前由任何人在任何系统上打开,则会引发错误。那么有什么方法可以通过 java 命令关闭 excel 文件吗?
如果文件实际上是在某人的 window 中打开的(就像您打开 ms word 文档一样),那么将无法从 java 关闭他们计算机上的文件程序。如果您只需要一次性更新该文件,我建议您创建另一个具有不同名称的文件,然后将所需目标的内容手动替换为您以编程方式创建的文件的内容。
根据文件的打开方式,您可以通过 Runtime.exec()
执行命令 net files <id> /close
。您还可以结合 psexec
命令来关闭远程计算机上的文件。
这个答案似乎描述了类似的情况,你只需要使 java 运行 命令:
https://superuser.com/questions/643916/remotely-close-open-shared-files
如何delete/close 打开excel 文件。所以你必须在删除前自动关闭文件...
final File file=new File("E:\book1.xlsx");
Runtime.getRuntime().exec(
"cmd /c taskkill /f /im excel.exe");
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.currentThread().sleep(2000);// you need to wait 1-2 sec to close file before delete
file.delete();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
我正在尝试在 java 中写入一个 excel 文件,并将其保存在共享文件夹中。但如果文件当前由任何人在任何系统上打开,则会引发错误。那么有什么方法可以通过 java 命令关闭 excel 文件吗?
如果文件实际上是在某人的 window 中打开的(就像您打开 ms word 文档一样),那么将无法从 java 关闭他们计算机上的文件程序。如果您只需要一次性更新该文件,我建议您创建另一个具有不同名称的文件,然后将所需目标的内容手动替换为您以编程方式创建的文件的内容。
根据文件的打开方式,您可以通过 Runtime.exec()
执行命令 net files <id> /close
。您还可以结合 psexec
命令来关闭远程计算机上的文件。
这个答案似乎描述了类似的情况,你只需要使 java 运行 命令: https://superuser.com/questions/643916/remotely-close-open-shared-files
如何delete/close 打开excel 文件。所以你必须在删除前自动关闭文件...
final File file=new File("E:\book1.xlsx");
Runtime.getRuntime().exec(
"cmd /c taskkill /f /im excel.exe");
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.currentThread().sleep(2000);// you need to wait 1-2 sec to close file before delete
file.delete();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();