Windows no se puede eliminar ._. Expediente

91

Actualmente tengo un archivo en la raíz de mi disco duro externo simplemente llamado ._., que supongo que fue agregado a mi disco duro después de usarlo en mi MacBook hace un tiempo. Estoy tratando de eliminar este archivo en mi máquina con Windows 10; sin embargo, Windows sigue afirmando que no se puede encontrar el archivo.

Mensaje de error del Explorador de Windows

También intenté eliminar el archivo a través de un símbolo del sistema elevado; sin embargo, se devuelve el mismo mensaje.

Mensaje de error del símbolo del sistema elevado

¿Hay alguna forma de eliminar este archivo de mi disco duro a través de Windows?

Mike Koch
fuente
77
@ rr: la miseria que puedes hacer con los nombres de archivos Unix tiende a ser mucho mayor. : 3
Martijn
55
Su símbolo del sistema muestra algo extraño. Lo hiciste find "._."pero omitiste las citas para del ._.. ¿Lo intentaste del "._."?
jpmc26
1
fenómeno interesante especialmente lo difícil que es borrar. ¿Estás seguro de que el archivo se creó legítimamente? (su nombre suena bastante extraño incluso para un mac)
Thomas
30
Mi parte favorita es la expresión del archivo de tus intentos de eliminarlo.
Trabajador
8
"._."No puede eliminar esto porque los koalas son una especie protegida.

Respuestas:

146

Ejecute el siguiente comando (podría requerir privilegios elevados / símbolo del sistema abierto como administrador):

del "\\?\F:\._."

Sobre el \\?\prefijo :

Para E / S de archivo, el " \\?\" prefijo de una cadena de ruta de acceso le indica a las API de Windows que deshabiliten todo el análisis de cadenas y que envíen la cadena que sigue directamente al sistema de archivos.

...

Debido a que desactiva la expansión automática de la cadena de ruta, el \\?\prefijo " " también permite el uso de " .." y " ." en los nombres de ruta, lo que puede ser útil si está intentando realizar operaciones en un archivo con estas rutas relativas reservadas. especificadores como parte de la ruta totalmente calificada.

Tenga en cuenta que no puede usar el \\?\prefijo " " con una ruta relativa.

Ejemplo :

==> set prog>"\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."
08.11.2015  13:25               132 ._.

==> type "D:\bat\Unusual Names\._."
The system cannot find the file specified.

==> type "\\?\D:\bat\Unusual Names\._."
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files

==> del "D:\bat\Unusual Names\._."
Could Not Find D:\bat\Unusual Names\._.

==> del "\\?\D:\bat\Unusual Names\._."

==> dir "D:\bat\Unusual Names\*"|find "._."

==>
JosefZ
fuente
¿Es posible usar ese prefijo con una URL, al startcomando?
Steven Penny
No usas esto con una URL. Utiliza comillas dobles si desea ejecutar una URL desde el comando de inicio.
Nelson
1
... ¿Se puede usar para evitar los límites de longitud? (Por ejemplo, eliminar un node_modulesdirectorio).
jpmc26
1
@ jpmc26 Según MSDN (consulte el enlace proporcionado en mi respuesta), sí. Sin embargo, conocí escenarios en los que el \\?\ prefijo utilizado delo los rmdircomandos no ayudaban. Se convirtió en 7-zipadministrador de archivos.
JosefZ
2
@ jpmc26: puede omitir algunos límites de longitud. Básicamente, una ruta expandida tiene un límite de longitud de 32K. Pero a la mayoría de los caminos les gusta C:\Windowso ..no están expandidos, y esos tienen un límite de longitud de solo 260. Ese límite de 260 se aplica en muchos lugares; desafortunadamente, algunos de esos lugares aplican incorrectamente ese límite también a las rutas `\\?`.
MSalters
24

Aunque la pregunta ya ha sido respondida, aún me gustaría ofrecer una posible solución alternativa: usar los "nombres cortos" heredados (que puede mostrar con la opción "/ x" para el comando dir) también puede permitirle controla los archivos con nombres "originales" que no puedes manejar de otra manera:

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
11.11.2015  16:31                 7 ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>dir /x
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>                       .
11.11.2015  16:31    <DIR>                       ..
11.11.2015  16:31                 7 _3E35~1      ._.
               1 File(s)              7 bytes
               2 Dir(s)  44.966.129.664 bytes free

C:\temp\test>del _3e35~1

C:\temp\test>dir
 Volume in drive C has no label.
 Volume Serial Number is 887A-5E48

 Directory of C:\temp\test

11.11.2015  16:31    <DIR>          .
11.11.2015  16:31    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  44.966.129.664 bytes free
Huésped
fuente
20

Instale 7-zip , ábralo y use su menú de archivo para cambiar el nombre del archivo a un nombre normal (por ejemplo, a aaa) y luego puede eliminarlo. Encontrado en esta publicación.

Probé esto en Windows XP ejecutándose en una VM. Usé Linux para crear un archivo llamado ._.en un directorio compartido.

NZD
fuente
-4

Simplemente en su explorador de Windows, navegue hasta el archivo. Cambie el nombre del archivo como: filename.txt Ahora puede eliminarlo. Si no puede hacerlo, debe asegurarse de tener derechos de administrador.

(Por cierto, la razón por la que no puede eliminarlo es porque el nombre del archivo no tiene nombre y la extensión no es válida. El nombre del archivo es "." y la extensión es "__.", lo que no está permitido).

Arie Klep
fuente
1
@ The_IT_Guy_You_Don't_Like Tengo curiosidad, ¿dónde OP mencionó eso?
muru
@Arie Klep, retiro mis palabras. Debo haberlo leído en otra pregunta similar
juego de palabras el
-8

Puede eliminar el archivo 1) Tomar posesión 2) otorgar a los administradores (usted) permiso completo 3) Haga lo que quiera con el archivo

Aviso CMD elevado

takeown / f Ruta completa al archivo no recuperable (el último elemento debe ser el archivo no recuperable)

icacls Ruta completa a los administradores de archivos / subvenciones no recuperables: f

Borrar archivo

usuario53336
fuente
26
El problema parece ser que Windows no puede acceder al archivo en absoluto, debido a su nombre de archivo no conforme, por lo que me sorprendería mucho si esta respuesta funciona.
Scott