Averigüe qué proceso está bloqueando un archivo o carpeta en Windows

717

¿Cómo puedo averiguar qué proceso está bloqueando un archivo o carpeta en Windows?

Por ejemplo, cuando intenta eliminar una carpeta, Windows informa esto:

La acción no se puede completar porque la carpeta está abierta en otro programa

Sucede lo mismo con un archivo, pero ¿cómo puedo saber qué programa o aplicación lo está utilizando actualmente y evitar que elimine el archivo o la carpeta?

leeand00
fuente
55
Vea esta pregunta de ServerFault .
John Fouhy
1
¿Tu archivo es un video? Es posible que el propio Explorador de Windows esté "usando" el archivo ...
DisgruntledGoat
37
¿Cómo es esto un duplicado? Él pregunta específicamente cómo averiguar qué proceso está bloqueando un archivo, no cómo eliminar un archivo bloqueado.
b1nary.atr0phy
8
No puedo agregar una respuesta más simple incorporada aquí porque se marcó incorrectamente como un engaño, ni puedo agregarla al otro hilo porque eso solo se aplica a XP. Pero de todos modos, para las versiones de Windows con Resource Monitor (escríbalo en la barra de búsqueda), vaya a la pestaña CPU / Manijas asociadas, luego busque el archivo o carpeta.
jontyc
Aprendí que Windows 10 (y supongo que ya en Windows 7) tiene un programa llamado Resource Monitor, que le permite ver qué procesos están bloqueando un archivo o carpeta: stackoverflow.com/a/24126882/470749
Ryan

Respuestas:

66

Método de 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
}

El openfilescomando debe tener soporte para archivos locales habilitados, ejecutándose openfiles /local ony reiniciando.

Más detalles Cómo averiguar qué proceso está bloqueando un archivo o carpeta en Windows

franco
fuente
12
La función debe estar activado conopenfiles /local on
mstrange
66
Desafortunadamente, openfilesparece no funcionar en Windows de 64 bits:ERROR: The target system must be running a 32 bit OS.
Thomas S.
1
Funciona en Win10 64 para mí
Michael
3
Parece que básicamente podrías lograrlo en cmd puro con openfiles /query /fo table | find /I "<path>"?
mwfearnley
1
... Si estamos dispuestos a reiniciar para habilitar algo, ¿por qué no simplemente reiniciar para acceder a la carpeta? No entiendo cómo esto resolvió el problema de OP cuando "simplemente reiniciar su máquina" hubiera sido mucho más fácil y aún así hubiera requerido reiniciar.
Nic Hartley
692

Puede usar el Monitor de recursos para esto que viene integrado con Windows 7, 8 y 10.

  1. Open Resource Monitor , que se puede encontrar
    • Al buscar Resource Monitor o resmon.exe en el menú de inicio, o
    • Como un botón en la pestaña Rendimiento en su Administrador de tareas
  2. Ir a la pestaña CPU
  3. Use el campo de búsqueda en la sección Manijas asociadas
    • Ver flecha azul en la captura de pantalla a continuación

Cuando haya encontrado el identificador, puede identificar el proceso mirando la columna Imagen y / o PID.

Luego puede intentar cerrar la aplicación como lo haría normalmente, o, si eso no es posible, simplemente haga clic derecho en el controlador y elimine el proceso directamente desde allí. ¡Pan comido!

Captura de pantalla del Monitor de recursos

Svish
fuente
18
Nota: el Monitor de recursos no encontró ningún controlador asociado en mi caso, mientras que Process Explorer (como se describió anteriormente ) sí.
ComFreek
15
@ComFreek Bueno, ProcessExplorer podría ser más poderoso en muchos casos, pero para mí Monitor de recursos siempre ha encontrado que la aplicación bloquea el archivo con el que estoy tratando de hacer algo. También lo prefiero a Process Explorer simplemente porque está justo ahí en el sistema operativo. No es necesario realizar una descarga adicional ni un acceso directo adicional en alguna parte.
Svish
8
No pude encontrar esto en Process Explorer, pero fue fácil de localizar con estas instrucciones en Resource Manager. Gracias.
Tatiana Racheva
66
@ComFreek En mi caso, fue solo el otro caso: Process Explorer no encontró el identificador, mientras que Resource Monitor sí.
Uwe Keim
99
+1: esto también funciona bien en Windows 10
Matt Innes
390

Un par de opciones:

Microsoft / SysInternals Process Explorer : vaya a Buscar> Buscar controlador o DLL. En el cuadro de texto "Identificador o subcadena de DLL:", escriba la ruta al archivo (por ejemplo, "C: \ ruta \ a \ archivo.txt") y haga clic en "Buscar". Se deben enumerar todos los procesos que tienen un identificador abierto para ese archivo.

WhoLockMe - Extensión de Explorer que agrega una opción de menú de clic derecho

NB WhoLockMe parece no funcionar con Win 10 (al menos no he podido registrarlo con ninguna de las versiones de 32 o 64 bits de regsvr32.exe).

Shevek
fuente
26
En Windows 7, si intenta eliminar un archivo que está bloqueado, el mensaje de error le indicará qué proceso lo tiene bloqueado
Garry Inglés
10
NOTA: Unlocker instala Adware si no tiene cuidado. Desde su sitio web: "Característica promocional: barra de herramientas Delta totalmente opcional".
Julian Knight
11
@GarryEnglish por alguna razón, este no es siempre el caso. Solo tenía que usar procexp para decirme que notepad ++ tenía un bloqueo en una carpeta. Windows 7 no pudo decirme el culpable.
GuiSim 01 de
44
@ jpmc26 No. WhoLockMe no funciona en Windows 7.
desde el
3
@ GarryEnglish- Como lo indicó GuiSim, esto no siempre es el caso, y en mi experiencia, rara vez es el caso.
dgo
196

Echa un vistazo a Process Explorer ( procexp.exe).

Desde su introducción:

¿Alguna vez se preguntó qué programa tiene abierto un archivo o directorio en particular? Ahora puedes averiguarlo.

Para saber qué proceso está utilizando un archivo específico, siga estos pasos:

  1. Vaya a Buscar , Buscar identificador o DLL ... o simplemente presione Ctrl+ F.

    Ingrese la descripción de la imagen aquí

  2. Ingrese el nombre del archivo y presione Buscar .

    Ingrese la descripción de la imagen aquí

  3. Process Explorer enumerará todos los procesos que tienen un identificador para abrir el archivo. Haga clic en una entrada para enfocar el proceso en la ventana principal.

    Ingrese la descripción de la imagen aquí

  4. Opcionalmente, incluso puede cerrar el controlador manualmente a través del panel inferior ( Ctrl+ L):

    Ingrese la descripción de la imagen aquí

Eroen
fuente
66
Process Hacker también puede hacerlo.
Benoit
55
Como menciona otra respuesta , Handle es una herramienta de línea de comandos de SysInternals que también realizará esta tarea.
heavyd
Olvidé un proceso cmd abierto en la carpeta, proces explorer me ayudó a notarlo.
davejal
Nota para los Googlers, la versión actual de PE parece que ya no es compatible con Close Handle
MickyD
No se pudo trabajar en Win10 64-bit 1709
K7AAY
30

LockHunter puede desbloquear cualquier controlador que pueda haber bloqueado sus archivos o carpetas. A diferencia de programas gratuitos similares, es compatible con Windows de 32 y 64 bits.

Es una herramienta gratuita para eliminar archivos bloqueados por algo que no sabes. LockHunter es útil para luchar contra el malware y otros programas que bloquean archivos sin motivo. A diferencia de otras herramientas similares, elimina archivos en la papelera de reciclaje, por lo que puede restaurarlos si los elimina por error.

  • Muestra los procesos que bloquean un archivo o carpeta
  • Permite desbloquear, eliminar, copiar o renombrar un archivo bloqueado
  • Permite matar el proceso de bloqueo
  • Permite eliminar procesos de bloqueo del disco duro
  • Se integra en el menú del Explorador
  • Elimina archivos en la papelera de reciclaje, por lo que puede restaurarlos si los elimina por error
  • Admite Windows de 32 y 64 bits.
Mehper C. Palavuzlar
fuente
55
¡Las dos respuestas principales no me funcionaron y las siguientes votaciones subidas fueron bloqueadas por mi cortafuegos o advirtieron que no fuera por mi Chrome !. LockHunter funcionó perfectamente.
user3885927
1
El cazador de la suerte ha trabajado para mí cuando otros no lo han hecho
SheldonH
Este funciona.
jdhao
10

EMCO UnlockIT puede identificar el proceso que ha bloqueado el archivo, así como desbloquear el archivo para que pueda eliminarlo / editarlo / moverlo. El programa es completamente gratuito, aunque la versión más nueva es un poco más lenta y más hinchada que la original (que tenía una GUI simple y sin piel, pero se cargaba casi instantáneamente y sin una pantalla de inicio molesta). Además, la versión original solía aparecer automáticamente cada vez que se activaba el error que mencionó, lo que le permite desbloquear instantáneamente el archivo y realizar la operación que estaba intentando.

Aún así, UnlockIT es un programa increíblemente útil que proporciona una funcionalidad básica que Windows no tiene en cuenta. Se encuentra entre el conjunto de herramientas estándar de utilidades que instalo en todas las computadoras con Windows en las que trabajo.

Lèse majesté
fuente
@ John: Bueno, identifica el programa que ha bloqueado un archivo. Y aún puede matar manualmente el proceso a través del administrador de tareas. Sin embargo, generalmente es más simple desbloquear el archivo (especialmente cuando es el explorador el que ha bloqueado el archivo la mayor parte del tiempo) en lugar de matar el proceso que lo ha bloqueado (generalmente debido a que accedió al archivo y dejó abierto el controlador de archivos) debido a una falla del programa).
Lèse majesté
2

Aquí estaba mi descubrimiento y solución.

Por cierto, ninguna de las respuestas anteriores resolvió mi problema.

Incluso intenté usar UNLOCKER que resultó inútil.

Mi problema fue el de Memeo Autosync Backup

Aparentemente, este proceso de copia de seguridad deja suficiente de un "archivo fantasma". Este "archivo fantasma", se mostraba cada vez que ALT-TAB hacía mi computadora (Windows Professional XP), es decir, veía DOS Programas MS Excel ejecutándose, cuando solo tenía UN visible, en mi BARRA DE TAREAS.

Encontré esta solución cuando pensé que podría haber sido la Protección SYMANTEC Endpoint (Anti-Virus); y deshabilitó el programa. Sin embargo, seguí recibiendo el mensaje de error:

no se puede eliminar (archivo LARGE.xls): lo está utilizando otra persona o programa. Cierre cualquier programa que pueda estar usando este archivo e intente nuevamente.

Posteriormente seguí viendo el aviso de Memeo de "sincronización" y salí del programa.

Posteriormente, NO ERROR.

Para usted, podría ser CUALQUIERA de estos fondos guardados.

usuario de Excel anteriormente frustrado
fuente
2

Si no conoce el programa que utiliza el archivo, puede ir a Mi PC; botón derecho del ratón; seleccione Administrar. En Herramientas del sistema> Carpetas compartidas> Abrir archivos, debería poder ver al usuario que ha bloqueado el archivo. Puede cerrar el archivo desde aquí y luego puede realizar la tarea de cambiar el nombre o eliminar el archivo. Espero que esto ayude

Rajesh
fuente
1
Esto solo funcionará para carpetas compartidas.
sweetfa
1

Posibilidad adicional, solo para salvar a las personas el tiempo que acabo de pasar:

En versiones anteriores de Windows, es posible que obtenga "Acceso denegado; es posible que no tenga derechos o que el archivo esté en uso". Si descubre a través de Process Explorer que, de hecho, nadie abre los archivos, lo más probable es que haya un problema con la seguridad. Con una cuenta de administrador, seleccione los archivos en el Explorador, haga clic con el botón derecho y seleccione Propiedades, Seguridad, Avanzado, Propietario. Lo más probable es que los archivos sean propiedad de una cuenta que ya no existe o ya no se puede verificar que exista (debido a la modificación de la configuración de confianza de Active Directory).

Cambie la propiedad a Administradores y listo.

Stu
fuente
0

Muchos de los programas aquí están desactualizados. Finalmente terminé usando OpenedFilesView de nirsoft, que funcionó muy bien.

Captura de pantalla

Aunque la mejor parte es la integración del menú del explorador, que es fácil de habilitar. Según el sitio web

Menú contextual del explorador

A partir de la versión 1.10, puede iniciar OpenedFilesView directamente desde el Explorador de Windows y ver solo los identificadores del archivo o carpeta que desea inspeccionar. Para habilitar esta función, marque 'Habilitar menú contextual del explorador' en el menú Opciones. Después de habilitar esta función, puede hacer clic con el botón derecho en cualquier archivo o carpeta en el Explorador de Windows y elegir el elemento 'OpenedFilesView' del menú. Si ejecuta la opción OpenedFilesView para una carpeta, mostrará todos los archivos abiertos dentro de esa carpeta. Si ejecuta la opción OpenedFilesView para un archivo, mostrará todos los identificadores abiertos para ese archivo.

Menú de contexto

Esta herramienta aún funciona de manera confiable en 2019

Vijay
fuente