我在從 Windows 資源管理器覆蓋任何 .exe 時遇到問題(拖放或複製貼上),我收到錯誤訊息:「操作無法完成,因為其中的資料夾或檔案已在另一個程式中開啟」。我使用 sysinternal 工具來檢查誰擁有該文件,並且它是系統進程。
假設我有以下檔案結構 rootfolder\a.exe rootfolder\someotherfolder\a.exe
1-如果我在根資料夾中開啟 Windows 資源管理器並將 a.exe 拖放到某個其他資料夾上,則某個其他資料夾內的 a.exe 會被正確覆寫。
2-如果我同時打開兩個Windows 資源管理器實例,一個在根資料夾內,一個在其他資料夾內,並且我將a.exe 拖放到另一個a.exe 上,我會收到錯誤訊息。
現在奇怪的是,如果我要關閉其他資料夾並嘗試重複步驟 1,它會失敗並顯示相同的錯誤訊息。系統會保留該檔案的句柄幾秒鐘,直到我關閉資料夾為止。
我嘗試關閉索引服務、停用 UAC、停用防毒軟體。我在網域上執行 Windows 7 64 位,我的使用者是我的機器的管理員,當我查看所述文件的權限時,它表明我的使用者對其具有完全控制權。我有點不知道該怎麼做才能解決這個問題。
答案1
答案2
當您將檔案拖放到 exe 檔案上時,您是在告訴資源管理器啟動目標執行程式文件並打開拖曳exe檔文件。這是預設行為。您的系統中並非如此。
我的猜測是第三方程式。您的系統上安裝了任何複製/拖放處理程序嗎?
答案3
給個程式解鎖器一槍。不僅是它自由的並相容所有版本的 Windows從 2000 到 7,它允許您從進程「解鎖」檔案句柄沒有終止它們(當然,您也可以選擇後一種選擇)。
這是迄今為止我發現的唯一一個允許您執行此操作的實用程式(解鎖檔案句柄而無需終止進程或重新啟動電腦)。
至於為什麼會發生這種情況,可能是 Windows 試圖快取應用程式圖標,或是外部進程(即防毒程式)掃描檔案。 Unlocker 會告訴您哪個進程鎖定了文件,因此它應該讓您了解為什麼會發生這種情況。