it-swarm-eu.dev

Come posso cancellare una cartella che è in uso?

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?

128
Factor Mystic

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.

78
Marc Reside

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.

enter image description here

170
bcorso

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.

7
Brant Bobby

Unlocker e WhoLockMe non funzionano su Windows a 64 bit. Io uso LockHunter .

7
Joe

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\""
6
Robert Collier

Ho avuto questo successo. A volte posso risolvere il problema eliminando prima i contenuti, quindi la cartella (vuota).

5
kpoehls

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
2
Synetech

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.

2
tghw

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:

 command output from commandline

Come altri hanno già detto, uccidere il manico può causare seri problemi.

2
slolife

Per eliminare una cartella/programma che dice che non puoi eliminarlo perché è aperto da qualche altra parte.

  • Fai clic sul pulsante di avvio
  • Digitare Taskmgr
  • Nella nuova finestra che si è aperta, nella scheda processo, cerca la cartella/programma che stai cercando di eliminare.
  • Fare clic con il pulsante destro del mouse e Termina operazione
  • Torna alla cartella/posizione del programma e dovresti essere in grado di eliminarlo ora
2
Hector

Aveva un file docs.Zip in uso da WinSCP.

  1. Ho creato un nuovo file usando lo stesso nome docs.Zip
  2. Incollato su documenti esistenti. Zip e il vecchio file sono stati sostituiti dal nuovo stesso file con nome.
  3. Quindi ho eliminato il file appena copiato docs.Zip tutti insieme.

In bocca al lupo

0
Syed Mazhar

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!)

0
johan

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.

0
rubynorails

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:

  1. Seleziona tutti i file all'interno della cartella
  2. Fare clic con il tasto destro su di essi e selezionare "Taglia"
  3. Torna alla cartella principale
  4. Incollali
  5. Cancellali

Questo ha funzionato bene per me. Spero di aver aiutato. :-)

0
Marco