A volte, quando lavoro su Windows, ricevo questo prompt quando provo a eliminare una directory:
Folder In Use
The action can't be completed because the folder is open in another program
Close the folder and try again.
Tuttavia, la cartella non è affatto "in uso" e non è aperta. Quindi, come posso eliminarlo a corto di riavvio?
Questa risposta è vecchia, ma sembra ancora ottenere traffico. Come indicato di seguito, ora c'è uno strumento integrato in Windows:
Start → Tutti i programmi → Accessori → Utilità di sistema → Monitoraggio risorse (o Esegui resmon.exe)
Puoi ottenere maggiori informazioni nelle risposte qui sotto. Il resto di questa risposta non è più pertinente.
Process Explorer from Sysinternals ti consente di cercare tra gli handle e le DLL. Cerca la directory e scopri quale processo sta "utilizzando" la cartella.
Da lì, hai la possibilità di arrestare quel processo o semplicemente di chiudere quel particolare handle di file. Assicurati di ciò che stai facendo quando lavori con l'handle del file direttamente e assicurati che non venga utilizzato da qualche processo importante.
C'è una GUI nativa per Windows:
Start >> Tutti i programmi >> Accessori >> Strumenti di sistema >> Monitor risorse (o Esegui resmon.exe
)
È possibile cercare i "manici associati" utilizzando la casella di ricerca (cerchiata in rosso) e fare clic con il pulsante destro del mouse sul processo che si desidera terminare.
Ad esempio, nell'immagine qui sotto non ho potuto cancellare la mia directory Eclipse. La ricerca delle maniglie associate a Eclipse ha mostrato che adb.exe aveva un handle per la directory. Dopo aver terminato il processo adb, ho potuto quindi eliminare la directory Eclipse.
Quando si utilizzano strumenti che impongono la chiusura di handle di file (come il già menzionato Unlocker ), tenere presente che ciò potrebbe causare seri problemi. (Vedi questo articolo di Raymond Chen .) Assicurati di saperlo which le applicazioni stanno usando il file e nessuno di loro sta facendo qualcosa di importante.
È più sicuro provare prima a chiudere le applicazioni invece di forzare l'handle chiuso.
Unlocker e WhoLockMe non funzionano su Windows a 64 bit. Io uso LockHunter .
Questo script REG ti fornirà una voce di menu contestuale "Visualizza maniglie" con il pulsante destro del mouse che invocherà l'utilità di gestione Sysinternals per visualizzare tutti gli handle aperti sul file o sulla cartella su cui hai fatto clic con il pulsante destro del mouse.
Metti handle.exe da Sysinternals in una posizione accessibile dal tuo percorso.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\AllFilesystemObjects\Shell\Handle]
@="View &Handles"
[HKEY_CLASSES_ROOT\AllFilesystemObjects\Shell\Handle\command]
@="cmd.exe /k handle -a -u \"%1\""
Ho avuto questo successo. A volte posso risolvere il problema eliminando prima i contenuti, quindi la cartella (vuota).
Se per "non in uso", vuoi dire che non ci sono maniglie aperte, quindi assicurati che Application Experience service non sia disabilitato . In tal caso, impostalo su manuale:
Run dialog (or command Prompt):
sc config AeLookupSvc start= demand
Quando ero su XP ho usato WhoLockMe per scoprire quali programmi avevano i file aperti e bloccati. La versione più recente che ho trovato non menziona Vista, ma ne varrebbe la pena.
A volte, è possibile eliminarlo dall'interno verso l'esterno manualmente. Basta navigare fino in fondo nella gerarchia, eliminare tutti i file, spostare verso l'alto una directory e ripetere. Non sono sicuro del motivo per cui Windows non può farlo da solo, ma a volte funziona anche per me.
Io uso Handle da SysInternals (ora Microsoft). È possibile digitare parte del nome della cartella per vedere quale processo ha un handle su quella cartella e quindi uccidere l'handle.
handle64.exe -nobanner "<path>"
Per esempio:
Come altri hanno già detto, uccidere il manico può causare seri problemi.
Per eliminare una cartella/programma che dice che non puoi eliminarlo perché è aperto da qualche altra parte.
Aveva un file docs.Zip in uso da WinSCP.
In bocca al lupo
Provare Ctrl + Shift + Esc > "programmi", quindi fare clic con il tasto destro del mouse su quello che si desidera disattivare e scegliere di disattivare. Quindi cancellalo di nuovo!
(Il mio sistema operativo è in svedese, quindi le traduzioni potrebbero non essere esattamente le stesse! Ma lo capisci!)
Quindi ci sono già alcune buone risposte, ma ho intenzione di contribuire con qualcosa di nuovo, che è quello che ho usato per risolvere questo stesso problema all'inizio di oggi.
Ho usato Python. Lo so, lo so, non è nativo di Windows, ma è un'utilità molto comune per amministratori di sistema, sviluppatori e super utenti, e puoi metterlo in discussione con un semplice oneliner:
from shutil import rmtree; rmtree('C:\path\to\folder')
... bingo bingo.
Ho avuto lo stesso problema con un flash di memoria (16 GB - irrilevante probabilmente) e non mi permetteva di eliminare una cartella. Ho provato ogni soluzione -freaking trovata su internet (nascondendo le anteprime, eliminando la cartella dal prompt cmd con Explorer.exe chiusa, tutto ..) e niente ha funzionato. Cosa lo ha fatto funzionare? Bene, questo:
Questo ha funzionato bene per me. Spero di aver aiutato. :-)