No puede eliminar un archivo o una carpeta en un volumen del sistema de archivos NTFS

Seleccione idioma Seleccione idioma
Id. de artículo: 320081 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

En este artículo se describe por qué es posible que no pueda eliminar un archivo o una carpeta en un volumen del sistema de archivos NTFS y cómo tratar las causas diferentes para resolver este problema.

Más información

Nota
Internamente, NTFS trata las carpetas como un tipo especial de archivo. Por consiguiente, en este artículo la palabra "archivo" indica un archivo o carpeta.

Causa 1: el archivo utiliza una ACL

Quizá no pueda eliminar un archivo si el archivo utiliza una Lista de control de acceso (ACL). Para resolver este problema, cambie los permisos del archivo. Quizá deba tener la propiedad de los archivos para poder cambiar los permisos.

Los administradores tienen implícitamente la capacidad de tener la propiedad de cualquier archivo, aunque explícitamente no se les haya concedido ningún permiso al archivo. Los propietarios del archivo tienen implícitamente la capacidad de modificar los permisos del archivo aunque no se les haya concedido explícitamente permisos al archivo. Por tanto, quizás tenga que hacerse con la propiedad de un archivo, concederse a sí mismo permisos para eliminarlo y, después, proceder a su eliminación.

No puede utilizar ciertas herramientas de seguridad para mostrar o modificar los permisos porque el archivo tiene una ACL no canónica

Para evitar este problema, utilice otra herramienta (por ejemplo, una compilación posterior de Cacls.exe).

Las entradas de control de acceso (ACE) de una ACL tienen una determinada secuencia preferida que depende de su tipo. Por ejemplo, las ACE que deniegan el acceso suelen estar antes de las ACE que lo conceden. Sin embargo, nada impide que un programa escriba una ACL que tiene las ACE en cualquier secuencia arbitraria. En algunas versiones anteriores de Windows, los problemas se produjeron cuando Microsoft Windows intentó leer estas ACL "no canónicas". A veces no puede modificar correctamente estas ACL con el editor de seguridad gráfico del Explorador de Microsoft Windows. Este problema se ha corregido en versiones de Windows posteriores. Si experimenta este problema, utilice la versión más reciente de Cacls.exe. Pero incluso aunque no pueda mostrar o modificar una ACL, puede escribir una nueva ACL que le permita el acceso al archivo.

Causa 2: el archivo está siendo utilizado

Quizá no pueda eliminar un archivo si éste está siendo utilizado. Para resolver este problema, determine qué proceso tiene el identificador abierto y ciérrelo.

Dependiendo de cómo se abra el archivo (por ejemplo, que esté abierto para acceso exclusivo en lugar de acceso compartido), es posible que no pueda eliminar un archivo que está siendo utilizado. Puede utilizar diversas herramientas para ayudarle a determinar los procesos que tienen identificadores abiertos a los archivos que desea. Para obtener más información acerca de las herramientas para ayudar a determinar los procesos que tienen identificadores abiertos a archivos, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
242131 Cómo mostrar una lista de procesos que tienen archivos abiertos
172710 Cómo usar la herramienta OH del Kit de recursos de Windows NT 4.0
Los síntomas de este problema pueden variar. Quizá pueda utilizar el comando Delete para eliminar un archivo, pero éste no se elimina realmente hasta que el proceso que tiene abierto el archivo lo suelte. Además, es posible que no tenga acceso al cuadro de diálogo Seguridad en un archivo que está pendiente de eliminación. Para resolver este problema, determine qué proceso tiene el identificador abierto y ciérrelo.

Causa 3: el daño del sistema de archivos impide el acceso al archivo

Si el sistema de archivos está dañado, quizá no pueda eliminar el archivo. Para resolver este problema, ejecute la utilidad Chkdsk en el volumen del disco para corregir cualquier error.

La existencia de sectores defectuosos en el disco, otro hardware defectuoso o problemas de software pueden dañar el sistema de archivos, dejando los archivos en un estado problemático. Las operaciones típicas pueden producir diversos tipos de error. Cuando el sistema de archivos detecta el daño, registra un suceso en el registro correspondiente y normalmente recibe un mensaje que le pide que ejecute Chkdsk. Dependiendo de la naturaleza del daño, quizás Chkdsk no pueda recuperar los datos de los archivos; sin embargo, Chkdsk devuelve el sistema de archivos a un estado coherente internamente. Para obtener información adicional acerca de cómo usar la herramienta Chkdsk, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
176646 Mensaje de error: El archivo o directorio está dañado...
187941 Una explicación de CHKDSK y de los nuevos modificadores /C e /I

Causa 4: los archivos están en rutas de acceso que son más profundas que los caracteres de MAX_PATH

Quizás no pueda abrir, modificar o eliminar un archivo cuando haya problemas con la ruta de acceso.

Solución 1: utilice un nombre 8.3 generado automáticamente para el acceso al archivo

Para resolver este problema, puede utilizar un nombre 8.3 generado automáticamente para el acceso al archivo. Esta solución puede ser la más sencilla si la ruta de acceso es profunda porque los nombres de carpeta son demasiado largos. Si la ruta de acceso 8.3 es demasiado larga o si se han deshabilitado los nombres 8.3 en el volumen, vaya a la Solución 2. Para obtener información adicional acerca de la deshabilitación de los nombres de archivo 8.3 en los volúmenes NTFS, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
121007 Cómo deshabilitar la creación de nombres 8.3 en las particiones NTFS

Solución 2: cambie el nombre de una carpeta profunda o muévala

Cambie el nombre de la carpeta para que los archivos de destino que son más profundos que MAX_PATH dejen de existir. Si lo hace así, empiece por la carpeta raíz (o cualquier otro lugar conveniente) y a continuación cambie el nombre de las carpetas para que sean más cortos. Si este paso no resuelve este problema (por ejemplo, si un archivo tiene una profundidad de más de 128 carpetas), vaya a Solución 4.

Solución 3: asigne una unidad a una carpeta en la estructura de la ruta de acceso

Asigne una unidad a una carpeta dentro de la estructura de la ruta de acceso del archivo o la carpeta de destino. Este método acorta la ruta de acceso virtual.

Por ejemplo, imagine que tiene una ruta de acceso estructurara de la manera siguiente:
\\nombreDeServidor\nombreDeSubcarpeta1\nombreDeSubcarpeta2\nombreDeSubcarpeta3\nombreDeSubcarpeta4\...
En esta ruta de acceso, el número total de caracteres es superior a 255 caracteres. Para acortar la longitud de esta ruta de acceso a 73 caracteres, asigne una unidad a nombreDeSubcarpeta4.

Solución 4: utilice un recurso compartido de red que sea tan profundo como la carpeta

Si las soluciones 1, 2 y 3 no son convenientes o no resuelven el problema, cree un recurso compartido de red que sea lo más profundo posible en el árbol de carpetas y cambie el nombre de las carpetas teniendo acceso al recurso compartido.

Solución 5: utilice una herramienta que puede atravesar las rutas de acceso profundas

Muchos programas de Windows esperan que la longitud de la ruta de acceso máxima sea inferior a 255 caracteres. Por consiguiente, estos programas sólo asignan almacenamiento interno suficiente para controlar estas rutas de acceso típicas. NTFS no tiene este límite y puede contener rutas de acceso mucho más largas.

Puede tener este problema si crea un recurso compartido en algún punto de una estructura de carpetas que ya es bastante profunda, y, a continuación, crea abajo una estructura profunda que señala utilizando el recurso compartido. Algunas herramientas que funcionan localmente en el árbol de carpetas, quizá no pueden cruzar el árbol entero partiendo desde la raíz. Puede tener que utilizar estas herramientas de una manera especial para que puedan cruzar el recurso compartido. (La documentación de la API CreateFile describe un método para cruzar el árbol entero en esta situación.)

Normalmente puede administrar los archivos utilizando el software que los crea. Si tiene un programa que puede crear archivos que son más profundos que MAX_PATH, normalmente puede utilizar ese mismo programa para eliminar o administrar los archivos. Normalmente puede eliminar los archivos creados en un recurso compartido utilizando el mismo recurso compartido.

Causa 5: el nombre de archivo incluye un nombre reservado en el espacio de nombres de Win32

Si el nombre de archivo incluye un nombre reservado (por ejemplo, "lpt1") en el espacio de nombres de Win32, quizá no pueda eliminar el archivo. Para resolver este problema, utilice un programa que no sea Win32 para cambiar el nombre del archivo. Puede utilizar una herramienta POSIX o cualquier otra que utilice la sintaxis interna adecuada para utilizar el archivo.

Además, quizá puede utilizar algunos comandos integrados para omitir las comprobaciones de nombre reservado de Win32 típico si utiliza una sintaxis determinada para especificar la ruta de acceso del archivo. Por ejemplo, si utiliza el comando Del en Windows XP, puede eliminar un archivo denominado "lpt1" si especifica la ruta de acceso completa del archivo utilizando la sintaxis especial siguiente:
del \\?\c:\rutaDeAccesoAlArchivo\lpt1
Para obtener más información acerca de cómo eliminar archivos con nombres reservados bajo Windows NT y Windows 2000, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
120716 Cómo quitar archivos con nombres reservados en Windows
Para obtener más información acerca de cómo eliminar archivos con nombres reservados bajo Windows XP, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
315226 Cómo quitar archivos con nombres reservados en Windows XP
Si abre un identificador a un archivo utilizando el mecanismo CreateFile típico de Win32, determinados nombres de archivo se reservan dispositivos de DOS del estilo anterior. Para la compatibilidad con versiones anteriores, estos nombres de archivo no están permitidos y no se pueden crear utilizando las llamadas típicas al archivo Win32. Sin embargo, este problema no es una limitación de NTFS.

Puede utilizar un programa Win32 para omitir las comprobaciones de nombre típicas que se realizan cuando un archivo se crea (o elimina) utilizando la misma técnica que utiliza para cruzar carpetas que son más profundas que MAX_PATH. Además, algunas herramientas POSIX no están sometidas a estas comprobaciones de nombres.

Causa 6: el nombre de archivo incluye un nombre no válido en el espacio de nombres de Win32

Quizá no pueda eliminar un archivo si el nombre de éste incluye un nombre no válido (por ejemplo, el nombre de archivo tiene un espacio o punto final o el nombre de archivo sólo está formado por un espacio). Para resolver este problema, utilice una herramienta que use la sintaxis interna adecuada para eliminar el archivo. Puede utilizar la sintaxis "\\?\" con algunas herramientas para funcionar en estos archivos, por ejemplo:
del "\\?\c:\ruta de acceso al archivo que contiene un espacio al final.txt "
La causa de este problema es similar a la Causa 4. Sin embargo, si utiliza la sintaxis de Win32 típica para abrir un archivo cuyo nombre contiene espacios o puntos al final, estos espacios o puntos se eliminarán antes de abrir el archivo real. Por consiguiente, si tiene dos archivos en la misma carpeta llamados "AFile.txt" y "AFile.txt " (observe el espacio después del nombre de archivo), si intenta abrir el segundo archivo utilizando llamadas Win32 estándar, abrirá el primero. De modo similar, si tiene un archivo cuyo nombre es simplemente " " (un carácter de espacio en blanco) e intenta abrirlo utilizando llamadas Win32 estándar, en su lugar abre la carpeta de la que depende el archivo. En esta situación, si intenta cambiar la configuración de seguridad en estos archivos, quizá no pueda hacerlo, o quizá cambie inesperadamente la configuración de varios archivos. Si se produce este comportamiento, puede pensar que tiene el permiso a un archivo que realmente tiene una ACL restrictiva.

Causas combinadas

A veces, puede experimentar combinaciones de estas causas, en cuyo caso el procedimiento de eliminación de un archivo puede resultar más complejo. Por ejemplo, si inicia sesión como el administrador del equipo, puede experimentar una combinación de la Causa 1 (no tiene permisos para eliminar un archivo) y la Causa 5 (el nombre de archivo contiene un carácter final por el que el acceso al archivo se redirige a un archivo diferente o no existente) y quizá no pueda eliminar el archivo. Si intenta resolver la Causa 1 haciéndose con la propiedad del archivo para agregar los permisos, quizá no pueda eliminarlo porque el editor de la ACL en la interfaz de usuario no puede tener acceso al archivo adecuado debido a la Causa 6.

En esta situación, puede usar la utilidad Subinacl con el modificador /onlyfile (esta utilidad está incluida en el Kit de recursos) para cambiar la propiedad y los permisos en un archivo que si no se hace así resultará inaccesible, por ejemplo:
subinacl /onlyfile "\\?\c:\ruta al archivo problemático" /setowner=dominio\administrador /grant=dominio\administrador=F
Nota
Este comando es una única línea de comando que se ha ajustado para mejorar su legibilidad.

Esta línea de comando de ejemplo modifica el archivo C:\ruta al archivo problemático que contiene un espacio al final para que la cuenta dominio\administrador sea la propietaria del archivo y tenga control total sobre el archivo. Ahora puede eliminar este archivo con el comando Del con la misma sintaxis "\\?\"

Referencias

Para obtener más información al respecto, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
319368 Recibe un mensaje de error de "Acceso denegado" cuando elimina carpetas de una unidad montada

Propiedades

Id. de artículo: 320081 - Última revisión: viernes, 07 de junio de 2013 - Versión: 7.6
La información de este artículo se refiere a:
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Home Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows Advanced Server, Limited Edition
  • Microsoft Windows Datacenter Server Limited Edition
Palabras clave: 
kbfilesystems kbinfo KB320081

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com