Windows Não é possível excluir ._. Arquivo

90

Eu atualmente tenho um arquivo na raiz do meu disco rígido externo simplesmente chamado ._. , que eu estou supondo que foi adicionado ao meu disco rígido depois de usá-lo no meu MacBook há um tempo atrás. Eu estou tentando excluir este arquivo na minha máquina Windows 10; no entanto, o Windows continua alegando que o arquivo não pode ser encontrado.

Eutambémtenteiexcluiroarquivopormeiodeumpromptdecomandoelevado;noentanto,amesmamensageméretornada.

Existe alguma maneira de excluir este arquivo do meu disco rígido pelo Windows?

    
por Mike Koch 08.11.2015 / 05:14

5 respostas

146

Execute o seguinte comando (pode exigir privilégios elevados / abrir o prompt de comando como administrador):

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

Sobre o prefixo \?\ :

For file I/O, the "\?\" prefix to a path string tells the Windows APIs to disable all string parsing and to send the string that follows it straight to the file system.

...

Because it turns off automatic expansion of the path string, the "\?\" prefix also allows the use of ".." and "." in the path names, which can be useful if you are attempting to perform operations on a file with these otherwise reserved relative path specifiers as part of the fully qualified path.

Observe que você não pode usar o prefixo " \?\ " com um caminho relativo.

Exemplo :

==> 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 "._."

==>
    
por 08.11.2015 / 08:39
24

Embora a pergunta já tenha sido respondida, ainda gostaria de oferecer uma solução alternativa possível: usar os "nomes abreviados" legados (que você pode exibir com a opção "/ x" para o comando dir) também pode permitem que você controle arquivos com nomes "funky" que você não pode usar de outra forma:

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
    
por 11.11.2015 / 16:38
20

Instale o 7-zip , abra-o e use o menu de arquivos para renomear o arquivo para um nome normal ( por exemplo, para aaa ) e, em seguida, você pode excluí-lo. Encontrado em este post.

Eu testei isso no Windows XP em execução em uma VM. Eu usei o Linux para criar um arquivo chamado ._. em um diretório compartilhado.

    
por 08.11.2015 / 07:08
-4

Apenas op o seu Windows Explorer, navegue até o arquivo. Renomeie o arquivo como: filename.txt Agora você pode excluí-lo. Se você não puder fazer isso, precisará ter certeza de que possui direitos de administrador.

(btw o motivo pelo qual você não pode apagá-lo é porque o nome do arquivo não tem nome e a extensão não é válida. O nome do arquivo é "." e a extensão é "__." que não é permitida).

    
por 08.11.2015 / 09:37
-8

Você pode excluir o arquivo por 1) Tome posse 2) conceda aos administradores (você) permissão total 3) Faça o que quiser com o arquivo

Prompt de CMD elevado

takeown /f Full Path to Undeletable File (last item must be the undeletable file)

icacls Full Path to Undeletable file /grant administrators:f

Excluir arquivo

    
por 08.11.2015 / 07:04