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

我用Java编写的代码是closures用户打开的文件。 所以,通常会发生这样的情况:用户正在编辑一个Excel文件,将其保存,打开,然后closures笔记本电脑上的盖子。 该文件仍然保持打开并locking,所以没有人可以编辑它。 有没有办法将它们踢开并解锁文件? 当他们使用该文件时,它被“检出”。 这是什么显示:

什么签出看起来像:(image)

下面的代码,通过WinDAV与SharePoint接口,告诉我一个文件是否被locking(我知道这不是很好的代码,但它工作,我已经尝试了其他几个解决scheme,包括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 } 

那么,我现在怎么解锁一个文件呢? 唯一的其他解决scheme是使用SharePoint库的PowerShell,但是有很多其他问题…

根据文章 ,您可以使用工具句柄 ,这是一个CLI工具来找出哪个进程locking文件。 一旦你有进程ID,你可以杀死这个进程。 我不知道任何可以识别罪魁祸首的Java API。 为了杀死进程,你可以使用taskkill ,你可以像这样使用Runtime来调用它。 这两个操作都要求您的应用程序以Administrator或更高权限运行。