Come posso eliminare una cartella in uso?


135

A volte, quando lavoro in Windows, ricevo questo messaggio quando provo ad 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 l'ho aperta. Quindi, come posso eliminarlo prima del riavvio?


2
Trovo che ciò si verifichi più spesso quando si lavora con Outlook e file .msg, nel qual caso la chiusura di Outlook arresta l'errore "Cartella in uso". Vedi anche la discussione su questa domanda della Microsoft Community .
Air

Risposte:


82

Questa risposta è vecchia, ma sembra ancora ottenere traffico. Come indicato di seguito, ora esiste uno strumento integrato in Windows:

Start → Tutti i programmi → Accessori → Strumenti di sistema → Resource Monitor (o Esegui resmon.exe)

Puoi ottenere maggiori informazioni nelle risposte sotto questa. Il resto di questa risposta non è più pertinente.


Process Explorer di Sysinternals ti consentirà di cercare tra handle e DLL. Cerca la directory e scopri quale processo sta "usando" la cartella.

Da lì, hai la possibilità di chiudere quel processo o semplicemente chiudere quel particolare handle di file. Assicurati di cosa stai facendo quando lavori direttamente con l'handle del file e assicurati che non venga utilizzato da un processo importante.


4
Ma come trovo la directory utilizzata dal processo?
Johnny_D,

2
Usa Ctrl-F e inserisci il nome della cartella sopra quello che stai cercando di eliminare.
MikeMurko,

4
Ora esiste una GUI nativa per Windows, vedi la mia risposta di seguito.
bcorso,

3
* GUI nativa / integrata in / Windows (Resource Monitor) vedi sotto.
Jamie Pate,

Nel mio caso, Process Explorer non è stato in grado di trovare l'handle, ma Resource Monitor (vedi altra risposta) era in grado.
Bart Verkoeijen,

182

C'è una GUI nativa per Windows:

Start >> Tutti i programmi >> Accessori >> Strumenti di sistema >> Monitor risorse (o Esegui resmon.exe )

Puoi cercare le "Maniglie associate" usando la casella di ricerca (cerchiata in rosso) e fare clic con il tasto destro del mouse sul processo che desideri terminare.


Ad esempio, nell'immagine seguente non sono riuscito a eliminare la mia directory Eclipse. La ricerca degli handle associati a Eclipse ha dimostrato che l'adb.exe aveva un handle nella directory. Dopo aver terminato il processo adb, ho potuto quindi eliminare la directory Eclipse.

inserisci qui la descrizione dell'immagine


5
Questo trucco ha messo in evidenza il processo che mi stava dando dolore :)
Pure.Krome,

2
Resource Monitor richiede le credenziali di amministratore.
Air

Ho una cartella bloccata sul mio desktop che il monitoraggio delle risorse non elenca come utilizzato. Oh bene.
sirdank,

bloccato? Questo per risolvere il particolare errore nella domanda, ovvero "la cartella è aperta in un altro programma". Questa è la tua situazione?
bcorso,

1
Risolto il problema per me
RubenGeert,

8

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


2
Unlocker è disponibile per sistemi a 64 bit.
avirk,

lockhunter ha trovato per me il processo di blocco che ProcExp e ResMon non sono riusciti a trovare.
Clever Human

7

Quando si utilizzano strumenti che impongono la chiusura degli handle di file (come lo Unlocker precedentemente citato ), tenere presente che ciò potrebbe causare seri problemi. (Vedi questo articolo di Raymond Chen .) Assicurati di sapere quali applicazioni stanno usando il file e che nessuna di esse sta facendo qualcosa di importante.

È più sicuro provare prima a chiudere le applicazioni invece di forzare la chiusura della maniglia.


Ottimo articolo. Lettura importante
Pacerier,

6

Questo script REG ti darà una voce di menu contestuale del tasto destro "Visualizza handle" che richiamerà l' utilità handle Sysinternals per vedere tutti gli handle aperti nel file o nella cartella su cui hai fatto clic con il pulsante destro del mouse .

Inserisci handle.exe da Sysinternals in un percorso 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\""

Perché non usare semplicemente la versione dell'interfaccia utente ProcessExplorer?
Pacerier,

5

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


Sì, ha funzionato per me!
TigerTiger,

@Wbdvlpr, @ kpoehls, Perché dovrebbe funzionare? Penso che sia solo un mito e ti capita di essere fortunato.
Pacerier,

3

L'approccio più rapido e semplice è utilizzare Handle , come indicato da slolife, anziché utilizzare Process Explorer. Sono entrambi di Mark Russinovich @ Microsoft.

Non essere sorpreso di scoprire che explorer.exe è il colpevole, come ho fatto oggi. Pare che ci sia un modo ufficiale per riavviare explorer.exe, ma mi sembra di essere sempre franca ucciderlo e l'avvio su nuovamente in Task Manager.


2

Quando ero su XP ho usato WhoLockMe per scoprire quali programmi avevano file aperti e bloccati. La versione più recente che ho trovato non menziona Vista, ma varrebbe la pena provare.

A volte, puoi eliminarlo dall'interno verso l'esterno manualmente. Basta andare fino in fondo nella gerarchia, eliminare tutti i file, spostarsi in una directory e ripetere. Non so perché Windows non possa farlo da solo, ma a volte funziona per me.


2

Se per "non in uso", si intende che non sono presenti handle aperti, assicurarsi che il servizio Esperienza applicazione non sia disabilitato . In tal caso, impostarlo su manuale:

Run dialog (or command prompt):

  sc config AeLookupSvc start= demand

2

Uso Handle di 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:

comando in uscita dalla riga di comando

Come altri hanno già detto, uccidere la maniglia può causare seri problemi.


1

Ho avuto lo stesso problema con un flash di memoria (16 GB - probabilmente irrilevante) e non mi avrebbe permesso di eliminare una cartella. Ho provato tutte le soluzioni -freaking- trovate su internet (nascondendo le miniature, eliminando la cartella dal prompt cmd con explorer.exe chiuso, tutto ..) e niente ha funzionato. Cosa l'ha fatto funzionare? Bene, questo:

  1. Seleziona tutti i file all'interno della cartella
  2. Fai clic destro su di essi e seleziona "Taglia"
  3. Torna alla cartella principale
  4. Incollali
  5. Eliminali

Ha funzionato bene per me. Spero di averti aiutato. :-)


1

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

  • Fai clic sul pulsante Start
  • Digitare Taskmgr
  • Nella nuova finestra che si è aperta, nella scheda Elaborazione, cerca la cartella / programma che stai tentando di eliminare.
  • Fare clic con il tasto destro del mouse e termina attività
  • Torna alla posizione della cartella / programma e dovresti essere in grado di eliminarlo ora

0

Prova Ctrl+ Shift+ Esc> "programmi", quindi fai clic con il pulsante destro del mouse su quello che desideri disattivare e scegli Disattiva. Quindi cancellalo di nuovo!

(Il mio sistema operativo è in svedese, quindi le traduzioni potrebbero non essere esattamente le stesse! Ma hai capito!)


0

spesso l'handle bloccato è Internet Explorer, lo chiudo in Task Manager, quindi cancello il file o la cartella o chiudo Explorer ... spesso una cartella ha un file txt aperto e che sarà l'handle che ha vinto ' per farti eliminare cartelle / file ... basta chiudere il file txt e poi dovresti andare bene, ora puoi eliminare la tua cartella.


Perché IE dovrebbe bloccare i file locali e perché .txt?
gronostaj,

0

Aveva un file docs.zip in uso da WinSCP.

  1. Ho creato un nuovo file usando lo stesso nome docs.zip
  2. Incollato su docs.zip esistente e il vecchio file è stato sostituito da un nuovo file con lo stesso nome.
  3. Quindi ho eliminato il file docs.zip appena copiato insieme.

In bocca al lupo


0

Quindi ci sono già alcune buone risposte, ma ho intenzione di contribuire con qualcosa di nuovo, che è quello che ho usato oggi per risolvere lo stesso problema.

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 eliminarlo con un semplice oneliner:

from shutil import rmtree; rmtree('C:\path\to\folder')

... bingo bango.


-1
  1. Trova il file che desideri eliminare.

  2. Rinominalo come preferisci.

  3. Cancellalo.


2
Questa risposta non funzionerà. Se si utilizza un file o una directory non è possibile rinominarlo.
David Post

-2

andare nella cartella fino al file o ai file in esecuzione. quando provi a eliminare questo file ti darà quale processo è in esecuzione. annotalo, quindi vai al task manager e termina quel processo .. dopo che puoi eliminare la cartella.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.