我在Java中編寫的代碼是關閉用戶打開的文件。因此,通常會發生以下情況:用戶正在編輯Excel文件,將其保存,將其保持打開狀態,然後關閉筆記本電腦上的蓋子。該文件仍然保持打開並鎖定,以便其他人無法編輯它。有沒有辦法將它們踢掉並解鎖文件?當他們使用該文件時,它被「檢出」。這裏顯示的內容:解鎖由Excel,Word或任何程序打開的文件
What checked out looks like: (image)
下面的代碼,通過WinDAV與SharePoint接口,告訴我,如果一個文件被鎖定或沒有(我知道這是不是很大的代碼,但它的作品,我已經試過其他幾種解決方案,包括文件鎖,Apache的IO文件流等):
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,但是它有很多其他問題...
您需要確定鎖定文件並終止該進程的進程。爲了找到這個過程,我只知道一些gui選項(比如sysinternals的進程管理器),你可以查找任何cli選項,它們會執行相同的操作。 –
我會研究一下。我添加了一張圖片,所以你認爲你可以看看,並告訴我你的想法?該文件被SharePoint鎖定,所以我不能真正殺死SharePoint,除非我想每個人都抱怨。會有其他方法嗎?就像創建文件的副本並刪除正在使用的文件一樣? –