Scopri quale processo sta bloccando un file o una cartella in Windows


717

Come posso sapere quale processo sta bloccando un file o una cartella in Windows?

Ad esempio, quando si tenta di eliminare una cartella, Windows segnala questo:

L'azione non può essere completata perché la cartella è aperta in un altro programma

Succede lo stesso con un file, ma come faccio a sapere quale programma o applicazione lo sta attualmente utilizzando e impedendomi di eliminare il file o la cartella?



1
Il tuo file è un video? Potresti scoprire che Windows Explorer stesso sta "usando" il file ...
DisgruntledGoat

37
Come è un duplicato? Ha in particolare chiedendo come scoprire quale processo sta bloccando un file, non come eliminare un file bloccato.
b1nary.atr0phy

8
Non riesco ad aggiungere una risposta integrata e più semplice qui perché è stata erroneamente contrassegnata come duplicata, né posso aggiungerla all'altro thread perché si applica solo a XP. Ma comunque, per le versioni di Windows con Resource Monitor (digitalo nella barra di ricerca), vai alla scheda CPU / Maniglie associate, quindi cerca il file o la cartella.
jontyc,

Ho imparato che Windows 10 (e immagino già fin da Windows 7) ha un programma chiamato Resource Monitor, che ti consente di vedere quali processi stanno bloccando un file o una cartella: stackoverflow.com/a/24126882/470749
Ryan,

Risposte:


66

Metodo PowerShell:

IF((Test-Path -Path $FileOrFolderPath) -eq $false) {
    Write-Warning "File or directory does not exist."       
}
Else {
    $LockingProcess = CMD /C "openfiles /query /fo table | find /I ""$FileOrFolderPath"""
    Write-Host $LockingProcess
}

Il openfilescomando deve avere il supporto per i file locali abilitati, eseguendo openfiles /local one riavviando.

Maggiori dettagli Come scoprire quale processo sta bloccando un file o una cartella in Windows


12
La funzione deve essere prima abilitata conopenfiles /local on
mstrange il

6
Sfortunatamente, openfilessembra non funzionare su un Windows a 64 bit:ERROR: The target system must be running a 32 bit OS.
Thomas S.

1
Funziona su Win10 64 per me
Michael

3
Sembra che tu possa praticamente raggiungerlo in puro cmd con openfiles /query /fo table | find /I "<path>"?
mwfearnley,

1
... Se siamo disposti a riavviare per abilitare qualcosa, perché non dovremmo semplicemente riavviare per accedere alla cartella? Non capisco come questo abbia risolto il problema di OP quando "riavviare il computer" sarebbe stato molto più semplice e avrebbe comunque richiesto un riavvio.
Nic Hartley,

692

È possibile utilizzare Resource Monitor per questo che è integrato con Windows 7, 8 e 10.

  1. Apri Monitor risorse , che puoi trovare
    • Con la ricerca di monitor di risorse o resmon.exe nel menu di avvio, o
    • Come pulsante nella scheda Prestazioni nel Task Manager
  2. Vai alla scheda CPU
  3. Utilizzare il campo di ricerca nella sezione Maniglie associate
    • Vedi la freccia blu nella schermata qui sotto

Quando hai trovato l'handle, puoi identificare il processo guardando la colonna Immagine e / o PID.

Puoi quindi provare a chiudere l'applicazione come faresti normalmente oppure, se ciò non è possibile, fai clic con il pulsante destro del mouse sulla maniglia e termina il processo direttamente da lì. Vai tranquillo!

Schermata Monitor risorse


18
Nota: Resource Monitor non ha trovato alcun handle associato nel mio caso, mentre Process Explorer (come descritto sopra ) lo ha fatto.
ComFreek,

15
@ComFreek Bene, ProcessExplorer potrebbe essere più potente in molti casi, ma per me Resource Monitor ha sempre trovato l'applicazione che blocca il file con cui sto provando a fare qualcosa. Lo preferisco anche a Process Explorer semplicemente perché è proprio lì nel sistema operativo. Non è necessario un download aggiuntivo e un collegamento aggiuntivo da qualche parte.
Svish,

8
Non sono riuscito a trovarlo in Process Explorer, ma è stato facile individuarlo con queste istruzioni in Resource Manager. Grazie.
Tatiana Racheva,

6
@ComFreek Nel mio caso era solo l'altro: Process Explorer non ha trovato l'handle, mentre Resource Monitor l'ha fatto.
Uwe Keim,

9
+1: funziona anche su Windows 10
Matt Innes,

390

Un paio di opzioni:

Esplora processi di Microsoft / SysInternals : vai a Trova> Trova handle o DLL. Nella casella di testo "Gestisci sottostringa o DLL:", digita il percorso del file (ad es. "C: \ path \ to \ file.txt") e fai clic su "Cerca". Tutti i processi che hanno un handle aperto per quel file dovrebbero essere elencati.

WhoLockMe - Estensione Explorer che aggiunge un'opzione di menu del tasto destro

NB WhoLockMe sembra non funzionare con Win 10 (almeno non sono stato in grado di registrarlo con una delle versioni a 32 o 64 bit di regsvr32.exe).


26
In Windows 7, se provi a eliminare un file bloccato, il messaggio di errore ti dirà quale processo è bloccato
Garry English

10
NOTA: Unlocker installa Adware se non stai attento. Dal loro sito Web: "Funzione promozionale: barra degli strumenti Delta completamente opzionale."
Julian Knight,

11
@GarryEnglish per qualche motivo non è sempre così. Ho dovuto usare procexp per dirmi che notepad ++ aveva un blocco su una cartella. Windows 7 non è stato in grado di dirmi il colpevole.
GuiSim,

4
@ jpmc26 No. WhoLockMe non funziona su Windows 7.
ceving il

3
@ GarryEnglish- Come affermato da GuiSim, questo non è sempre il caso, e nella mia esperienza, raramente è il caso.
DGO

196

Dai un'occhiata a Process Explorer ( procexp.exe).

Dalla sua introduzione:

Vi siete mai chiesti quale programma ha aperto un determinato file o directory? Ora puoi scoprirlo.

Per scoprire quale processo utilizza un file specifico, attenersi alla seguente procedura:

  1. Vai su Trova , Trova handle o DLL .. o premi semplicemente Ctrl+ F.

    Inserisci qui la descrizione dell'immagine

  2. Immettere il nome del file e premere Cerca .

    Inserisci qui la descrizione dell'immagine

  3. Process Explorer elencherà tutti i processi che hanno un handle per il file aperto. Fare clic su una voce per focalizzare il processo nella finestra principale.

    Inserisci qui la descrizione dell'immagine

  4. Opzionalmente, puoi anche chiudere manualmente la maniglia attraverso il riquadro inferiore ( Ctrl+ L):

    Inserisci qui la descrizione dell'immagine


6
Anche Process Hacker può farlo.
Benoit,

5
Come menziona un'altra risposta , Handle è uno strumento da riga di comando di SysInternals che compirà anche questo compito.
pesante

Ho dimenticato un cmd proces aperto nella cartella, proces explorer mi ha aiutato a notarlo.
davejal,

Nota per i googler, la versione attuale di PE sembra non supportare più Close Handle
MickyD

Impossibile lavorare in Win10 6409 a 1709
K7AAY il

30

LockHunter può sbloccare tutti i gestori che potrebbero aver bloccato i tuoi file o cartelle. A differenza di software simili, supporta Windows a 32 e 64 bit.

È uno strumento gratuito per eliminare i file bloccati da qualcosa che non conosci. LockHunter è utile per combattere il malware e altri programmi che bloccano i file senza motivo. A differenza di altri strumenti simili, elimina i file nel cestino in modo da poterli ripristinare se cancellati per errore.

  • Mostra i processi che bloccano un file o una cartella
  • Consente di sbloccare, eliminare, copiare o rinominare un file bloccato
  • Permette di terminare il processo di blocco
  • Permette di rimuovere i processi di blocco dal disco rigido
  • Si integra nel menu Explorer
  • Elimina i file nel cestino, quindi è possibile ripristinarli se cancellati per errore
  • Supporta Windows a 32 e 64 bit

5
Le prime due risposte non mi hanno funzionato e le successive votate sono state bloccate dal mio firewall o hanno avvertito di non andare dal mio Chrome !. LockHunter ha funzionato perfettamente.
user3885927

1
Il cacciatore di fortuna ha funzionato per me quando altri no
SheldonH

Questo funziona.
jdhao,

10

EMCO UnlockIT può identificare il processo che ha bloccato il file e sbloccare il file in modo da poterlo eliminare / modificare / spostare. Il programma è completamente gratuito, anche se la versione più recente è un po 'più lenta e più gonfia rispetto all'originale (che aveva una GUI semplice, non potenziata, ma caricata praticamente istantaneamente e senza una fastidiosa schermata iniziale). Inoltre, la versione originale veniva visualizzata automaticamente ogni volta che si attivava l'errore menzionato, consentendo di sbloccare immediatamente il file ed eseguire l'operazione che si stava tentando.

Tuttavia, UnlockIT è un programma incredibilmente utile che fornisce una funzionalità di base che manca in modo critico da Windows. È tra i toolkit standard delle utility che installo su tutti i computer Windows su cui lavoro.


@ John: Beh, identifica il programma che ha bloccato un file. E puoi ancora terminare manualmente il processo tramite Task Manager. Tuttavia, di solito è più semplice sbloccare il file (soprattutto quando è Explorer che ha bloccato il file per la maggior parte del tempo) invece di interrompere il processo che lo ha bloccato (di solito a causa dell'accesso al file e dell'apertura del gestore file a causa di un problema tecnico).
Lèse majesté,

2

Ecco la mia scoperta e soluzione.

Per inciso, nessuna delle risposte di cui sopra ha risolto il mio problema.

Ho anche provato a usare UNLOCKER che si è rivelato inutile.

Il mio problema era quello di Memeo Autosync Backup

Apparentemente, questo processo di backup lascia abbastanza un "file fantasma". Questo "file fantasma", verrebbe visualizzato ogni volta che avrei ALT-TAB il mio computer (Windows Professional XP), cioè avrei visto DUE programmi MS Excel in esecuzione, quando ne avevo solo UNO visibile, sulla mia TASK BAR.

Mi sono imbattuto in questa soluzione quando ho pensato che potesse essere la protezione dell'endpoint (antivirus) di SYMANTEC; e disabilitato il programma. Tuttavia, ho continuato a ricevere il messaggio di errore:

impossibile eliminare (file LARGE.xls): viene utilizzato da un'altra persona o programma. Chiudi tutti i programmi che potrebbero utilizzare questo file e riprova.

Successivamente ho continuato a vedere l'avviso Memeo di "sincronizzazione" e QUIT il programma.

Successivamente, NESSUN ERRORE.

Per te, potrebbe essere QUALUNQUE di questi salvataggi in background.


2

Se non si conosce il programma in uso, è possibile accedere a Risorse del computer; tasto destro; seleziona Gestisci. In Strumenti di sistema> Cartelle condivise> Apri file, dovresti essere in grado di vedere l'utente che ha bloccato il file. Puoi chiudere il file da qui e quindi puoi eseguire il compito di rinominare o eliminare il file. Spero che sia di aiuto


1
Funzionerà solo per le cartelle condivise.
Sweetfa

1

Ulteriore possibilità, solo per salvare le persone il tempo che ho appena trascorso:

Nelle versioni precedenti di Windows, potresti ricevere "Accesso negato - potresti non avere diritti o il file potrebbe essere in uso". Se trovi attraverso Process Explorer che i file non sono in realtà aperti da nessuno, è probabile che ci sia un problema con la sicurezza. Utilizzando un account amministratore, selezionare i file in Explorer, fare clic con il tasto destro e selezionare Proprietà, Sicurezza, Avanzate, Proprietario. Le probabilità sono che i file siano di proprietà di un account che non esiste più o che non può più essere verificato (a causa della modifica delle impostazioni di attendibilità di Active Directory).

Cambia la proprietà in Amministratori e sei a posto.


0

Molti programmi qui sono obsoleti. Alla fine ho usato OpenedFilesView di nirsoft, che ha funzionato davvero bene.

Immagine dello schermo

Sebbene la parte migliore sia l'integrazione del menu Explorer, che è facile da abilitare. Come da sito web

Menu contestuale di Explorer

A partire dalla versione 1.10, è possibile avviare OpenedFilesView direttamente da Esplora risorse e visualizzare solo gli handle del file o della cartella che si desidera controllare. Per abilitare questa funzione, seleziona "Abilita il menu contestuale di Explorer" nel menu Opzioni. Dopo aver abilitato questa funzione, è possibile fare clic con il pulsante destro del mouse su qualsiasi file o cartella in Esplora risorse e selezionare la voce "OpenedFilesView" dal menu. Se si esegue l'opzione OpenedFilesView per una cartella, verranno visualizzati tutti i file aperti all'interno di quella cartella. Se si esegue l'opzione OpenedFilesView per un file, verranno visualizzati tutti gli handle aperti per quel file.

menù contestuale

Questo strumento funziona ancora in modo affidabile nel 2019

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.