如何在java中关闭一个打开的文件

时间:2015-08-20 19:29:59

标签: java excel file command

我正在尝试在java中编写excel文件,并将其保存在共享文件夹中。但如果任何人当前在任何系统上打开该文件,则会抛出错误。那么有什么方法可以通过java命令关闭excel文件吗?

3 个答案:

答案 0 :(得分:1)

如何删除/关闭打开的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();

答案 1 :(得分:0)

如果文件实际上是在某个人的窗口中打开的(就像你打开ms word doc那样),那么就无法从java程序中关闭他们机器上的文件了。如果您只需要一次性更新该文件,我建议您创建另一个具有不同名称的文件,然后使用您以编程方式创建的文件的内容手动替换所需目标的内容。

答案 2 :(得分:0)

根据文件的打开方式,您可以通过net files <id> /close执行命令Runtime.exec()。您还可以将psexec命令组合在一起以关闭远程计算机上的文件。

这个答案似乎描述了类似的情况,你只需要让java运行命令: https://superuser.com/questions/643916/remotely-close-open-shared-files