¿Por qué no puedo borrar un archivo?

En ocasiones, cuando queremos borrar o cambiar el nombre de una carpeta o de un archivo, nos encontramos con una advertencia parecida a esta.

image 

En este caso, no podemos borrar el archivo ConsumeVMService.dll. Esto puede ser causado por muchos motivos, y en general nos indica que no es una buena idea eliminar ese archivo.

Una posible causa es que haya una ‘handle’ abierta hacia el archivo, o uno de los archivos dentro de una carpeta, que se quiere eliminar. Una ‘handle’ es una referencia que un programa guarda hacia un archivo (o en general hacia cualquier recurso del sistema). Si el sistema operativo elimina, o mueve, un archivo que otro programa esta accediendo, dicho programa puede dejar de funcionar correctamente. Por ejemplo, cuando tenemos abierto un documento en Word, si borraramos entonces ese documento, se perderian los cambios que le hemos hecho. Para evitarlo, el sistema operativo impide borrar el archivo.

Otra posibilidad es que en realidad no se tenga permiso para elimiar el archivo, aun siendo administrador. Por ejemplo, los administradores no tienen acceso de escritura (i.e. no pueden borrar) a los archivos bajo el directorio de Windows (normalmente en c:\Windows). Esto es porque  no es una buena idea modificar ninguno de esos archivos, ni tiene por qué ser necesario. Se pueden ver los permisos de un archivo dentro de sus propiedades (click-derecho -> propiedades ->: Seguridad)

image

Ahora bien, si crees que el motivo es que haya una handle abierta, no es siempre fácil saber qué programa la guarda. Una manera sencilla de averiguarlo es usando ProcessExplorer, de Sysinternals. Sin necesidad de instalarlo, Process explorer permite buscar ‘handles’ abiertas a cualquier proceso o recurso, y averiguar qué programa las está reteniendo.

Siguiendo con el mismo ejemplo, podemos buscar referencias abiertas al archivo que no podíamos eliminar, ConsumeVmService.dll, y ver que programas lo utilizan:

image

En este caso, dos programas tienen una handle abierta: devenv.exe y sidebar.exe. El primero, haciendo una búsqueda rápida en Google (o en Live :-)), vemos que es Visual Studio, mientras que el segundo es la Sidebar de Windows.

Si pese a la advertencia, estamos seguros de que queremos borrar ese archivo, tenemos que eliminar las referencias abiertas en esos dos programas. En muchas ocasiones por ejemplo simplemente cerrar el documento abierto en Word. En nuestro ejemplo, equivaldría a parar el debugging en Visual Studio y cerrar la Sidebar.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: