解锁由Excel,Word或任何程序打开的文件

时间:2017-06-15 18:28:58

标签: java excel sharepoint

我用Java编写的代码是关闭用户打开的文件。因此,通常会发生以下情况:用户正在编辑Excel文件,他们保存它,保持打开状态,然后关闭笔记本电脑上的盖子。该文件仍然保持打开并锁定,因此没有其他人可以编辑它。有没有办法将它们踢开并解锁文件?当他们使用该文件时,它被“签出”。以下是显示的内容:

What checked out looks like: (image)

以下代码,通过WinDAV与SharePoint连接,告诉我文件是否被锁定(我知道它不是很好的代码,但是它可以工作,我已经尝试了其他几个解决方案,包括Filelock,Apache IO,FileStream等。):

String fileName = String.valueOf(node);
        File file = new File(fileName);
        boolean replaced;

        File sameFileName = new File(fileName);

        if(file.renameTo(new File(sameFileName + "_UNLOCK"))){
            replaced = true; //file is currently not in use
            (new File(sameFileName + "_UNLOCK")).renameTo(sameFileName);
        }else{
            replaced = false; //file is currently in use
        }

那么,我现在如何解锁文件?唯一的其他解决方案是使用SharePoint库的PowerShell,但这还有很多其他问题......

1 个答案:

答案 0 :(得分:1)

根据post,您可以使用工具Handle,这是一个CLI工具,可以找出锁定文件的进程。获得进程ID后,就可以终止该进程。我不知道任何可以识别罪魁祸首过程的Java API。要终止此过程,您可以使用taskkill,然后可以使用Runtime input$btn来调用它。这两项操作都要求您以管理员或以上权限运行应用程序。