以程式設計解鎖或刪除鎖定的資料夾

以程式設計解鎖或刪除鎖定的資料夾

一、總結

我找不到如何透過命令列介面解鎖或刪除鎖定的資料夾及其所有子資料夾。


2. 論證

我正在做這個專案。例如,我的來源資料夾 - sources,輸出資料夾 - output。我查看文件和/或進行測試更改output→ 我添加更改sources→ 我運行構建命令(build例如),這應該覆蓋output.但build無法正確啟動:

正在使用的資料夾

正在使用的資料夾

該操作無法完成,因為該資料夾或其中的檔案已在另一個程式中開啟

關閉資料夾或檔案並重試

因此,每次build啟動前我都會打開 LockHunter → 解鎖output→ 運行build

如果可以output在之前運行解鎖或刪除命令build,那就太好了,我不需要每次都手動運行LockHunter,花時間在上面。


3. MCVE

我建立了一個資料夾KiraUnlockCLI→開啟命令提示字元→移至KiraUnlockCLI其中(cd KiraUnlockCLI)→KiraUnlockCLI鎖定:

資料夾已鎖定

我需要KiraUnlockCLI以程式方式解鎖或刪除。


4. 要求

  1. 任何類型的程式都可以鎖定output其中的資料夾和/或文件,範例:

    1. Windows資源管理器
    2. 命令提示符
    3. 文字編輯器
    4. 瀏覽器
    5. 圖片瀏覽器
  2. 解決方案必須解鎖資料夾,而不僅僅是文件。我可以在第三方程式中開啟其中的任何文件output及其子資料夾。

  3. 必須支援相對路徑。output對於我、另一個開發人員和持續整合(Travis CI、AppVeyor)來說位於不同的目錄中。

5.沒有幫助

5.1.相對路徑

  1. 開鎖者不支援相對路徑。

    2019年9月初我寫了一個問題→ 我在中講述了我的問題LockHunter 回饋表→ 我還沒有收到任何回饋。

5.2.資料夾支援

這些程式可以解鎖文件,但不能解鎖資料夾。

  1. 文件刺客:

    FileASSASSIN /unlock /silent KiraUnlockCLI
    
  2. 忙刪除

5.3.具體PID

  1. 處理— 解鎖所需的 PID。但我需要殺死具有任何 PID 的進程;請參閱我的問題的 4.1 項。

5.4.圖形使用者介面

我找不到有關這些程式的命令列介面的任何資訊:

  1. IObit解鎖器
  2. 解鎖IT

5.5.不起作用

  1. rm -rf KiraUnlockCLIrmGnuWin32):

    /usr/bin/rm: cannot remove 'KiraUnlockCLI`: Device or resource busy
    
  2. 開啟的文件視圖— 此指令後沒有效果:

    openedfilesview /closefolder closeprocess killprocess KiraUnlockCLI
    
  3. 誰鎖我 不適用於 Windows 10

  4. 解鎖器unlocker D:\SashaDebugging\KiraUnlockCLI:

    解鎖器

    未找到鎖定手把。

    然而Unlocker可以幫助你處理這個物體。

    選擇要對物件執行的操作。

  5. 僵局無法透過命令列介面解鎖資料夾。看我的問題死鎖問題追蹤器。


6. 不提供

  1. 我是知道的副作用;請不要告訴我,我不需要解鎖資料夾。
  2. 在發布我的問題之前,我閱讀了這些超級用戶問題及其答案:

    1. 無法刪除空資料夾,因為它已被使用
    2. 有沒有辦法從命令列處理鎖定的檔案並釋放它?
    3. 如何刪除正在使用的資料夾?
    4. 從 Windows 命令列刪除目錄,即使該目錄已在程式中開啟
    5. 從命令列刪除鎖定的檔案/資料夾
  3. 我檢查了程序這個清單在 Unlocker 網站上。

答案1

自從我發現 IOBit Unlocker(大約 10 年前)以來,我就不再使用您提供的所有工具以及其他一些工具,為什麼?無論如何,它實際上都會刪除文件/資料夾,具有乾淨的介面,並且您還可以自動化(如您所要求的)。幾年後,我在網路上看到一篇文章,指出它甚至會刪除受保護和正在使用的 Avast AV 檔案。

如果需要,您可以安裝並保留它,或者簡單地獲取檔案並獨立使用它(用於IObitUnlocker.exe /?查看命令列幫助):

安裝:

IObitUnlocker.exe /Delete /Advanced <folder>

獨立:

cd <app folder>
sc create IObitUnlocker type= kernel start= demand binPath= "IObitUnlocker.sys"
IObitUnlocker.exe /Delete /Advanced <folder>
sc delete IObitUnlocker
rd /S /Q %AllUsersProfile%\IObit

自動化方面的一個缺點是在操作後顯示一條訊息,但您可以使用timeout /T <time> && taskkill /IM IObitUnlocker.exe.這<time>取決於資料夾內容/層次結構、正在使用的檔案數量、系統速度和 CPU/HDD 負載。請記住,解鎖需要提升高度。

如果您碰巧使用 AutoHotKey,則對話方塊關閉(以及您能想到的任何 UI 互動)非常容易自動化。

SetTimer, DismissUnlocker, 1000
DismissUnlocker() {
  If WinExist("IObit Unlocker ahk_class #32770")
    ControlClick, Button1
}

相關內容