Contenidos
Como saber que programa tiene abierto un archivo
cómo saber quién tiene un archivo abierto windows 10
Tener un archivo abierto no es un bloqueo porque, si cada proceso tiene que comprobar primero si el archivo está abierto y no proceder si lo está o crearlo/abrirlo si no lo está, entonces dos procesos podrían perfectamente comprobar simultáneamente, ambos encontrar que no está abierto, entonces ambos crearlo o abrirlo.
Para utilizar un archivo como bloqueo, la operación de comprobación y bloqueo tiene que ser una única operación ininterrumpida. Esto se puede conseguir en un sistema de archivos Unix creando un archivo con modo de sólo lectura y eliminándolo para desbloquearlo. Si el fichero existe (y es de sólo lectura) la creación del fichero fallará, por lo que se consigue el check-and-lock en una única operación atómica.
En cuanto a la pregunta específica «¿Qué procesos tienen este archivo abierto?», esto puede ser útil cuando se quiere desmontar un sistema de archivos pero no se puede porque algún proceso tiene un archivo abierto en él. Si no tienes esos comandos disponibles, puedes preguntar en /proc como root:
Reemplace $1 con el nombre del archivo abierto que está buscando. Puede modificar el -printf por lo que quiera ver, o canalizar en egrep -o ‘[0-9]+’ | head -1 para usarlo con ps -Fp <pid> para obtener la información de ese proceso.
cómo saber qué programa está usando una carpeta windows 10
Tengo un programa que contiene datos que me gustaría trasladar a otro ordenador. El problema es que el programa no ofrece ninguna forma de exportar estos datos. ¿Existe algún software que permita saber qué archivos está utilizando un programa? Sé que hay programas que dado un archivo, te dirán qué programa lo está usando pero yo busco lo contrario.
Si eso no es suficiente, Process Monitor te mostrará un registro completo de todas las operaciones de archivo y registro que realiza un proceso. Eso puede ayudarte si descubres que has pasado algo por alto (como una clave del registro) después de moverla.
El Explorador de Procesos es bueno, pero sólo muestra lo que se está ejecutando actualmente, una biblioteca podría ser utilizada sólo para la inicialización y luego descartada o sólo utilizada durante algún tiempo oscuro. Dependency Walker podría ser lo que buscas.
explorador de procesos
Una cosa que me molesta mucho de Windows es el viejo error de violación de uso compartido. A menudo no puedes identificar qué es lo que lo mantiene abierto. Normalmente es un editor o explorador que apunta a un directorio relevante, pero a veces he tenido que recurrir a reiniciar mi máquina.
He tenido éxito con Sysinternals Process Explorer. Con esto, puedes buscar qué proceso(s) tiene(n) un archivo abierto, y puedes usarlo para cerrar la(s) manija(s) si quieres. Por supuesto, es más seguro cerrar todo el proceso. Tenga precaución y criterio.
Sólo tenga mucho cuidado con el cierre de los manejadores; es aún más peligroso de lo que usted piensa, debido al reciclaje de manejadores – si usted cierra el manejador de archivo, y el programa abre algo más, ese manejador de archivo original que usted cerró puede ser reutilizado para ese «algo más». Y ahora adivina qué pasa si el programa continúa, pensando que está trabajando en el archivo (cuyo manejador cerraste), cuando en realidad ese manejador de archivo está ahora apuntando a otra cosa.
Sólo para aclarar, es más probable que esto sea el resultado de aplicaciones de terceros que se comportan mal y que no utilizan la llamada a la API CreateFile correctamente, que algo de Windows en sí mismo. Tal vez sea una consecuencia del diseño de CreateFile, pero lo hecho, hecho está y no podemos volver atrás.
encontrar qué proceso está usando un archivo de windows
Microsoft/SysInternals Process Explorer – Vaya a Find > Find Handle or DLL. En el cuadro de texto «Manejador o DLL subcadena:», escriba la ruta del archivo (por ejemplo, «C:\path\to\file.txt») y haga clic en «Buscar». Aparecerán todos los procesos que tengan un «handle» abierto para ese archivo.
Es una herramienta gratuita para eliminar archivos bloqueados por algo que no conoces. LockHunter es útil para luchar contra el malware, y otros programas que están bloqueando archivos sin una razón. A diferencia de otras herramientas similares, elimina los archivos en la papelera de reciclaje para que pueda restaurarlos si se eliminan por error.
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 nueva versión es un poco más lenta y más hinchada que la original (que tenía una interfaz gráfica de usuario sencilla y sin piel, pero se cargaba casi instantáneamente y sin una molesta pantalla de inicio). Además, la versión original solía aparecer automáticamente cada vez que se producía el error que mencionas, permitiéndote desbloquear instantáneamente el archivo y realizar la operación que estabas intentando.