Por que não é possível nomear uma pasta “._.” no Windows 7?

73

Acabei de notar que não é possível nomear uma pasta ._. - ela recebe o nome ._ . Às vezes, ele desaparece logo após nomear, mas reaparece depois de atualizar a visualização. O Windows parece ter um problema com pontos no final de um nome de arquivo - por que isso?

    
por Black 18.01.2016 / 21:57

4 respostas

123

Normalmente, o Windows exige que os arquivos não tenham uma extensão ou uma extensão com pelo menos um caractere; não é legal com extensões de comprimento zero, ou seja, nomes de arquivos que terminam com . . As pastas também podem ter extensões, portanto, o Windows não permite que seus nomes terminem com . . Fonte, do artigo que DavidPostill vinculou :

Use a period to separate the base file name from the extension in the name of a directory or file.

(Ênfase minha). Se você tentar finalizar um arquivo ou diretório nomeado com um ponto, o Windows apenas assume que você não desejava nenhuma extensão e, portanto, o remove, mesmo que você o crie com md em um prompt de comando.

Zona de perigo! Se você deseja que o nome de uma pasta termine com . , será necessário usar a sequência de substituição de nome original bruta de \?\ . Em um prompt de comando, md \?\C:\path\to\container\._. realmente criará uma pasta chamada ._. , mas muitos programas terão problemas com ela, até mesmo o Explorer:

Esse diretório só pode ser removido com rd seguido por seu nome \?\ ou renomeado com seu nome abreviado (8.3, dir /x ).

    
por 18.01.2016 / 22:05
22

O Windows parece ter um problema com pontos no final de um nome de arquivo? Por que isso acontece?

Do not end a file or directory name with a space or a period. Although the underlying file system may support such names, the Windows shell and user interface does not.

O link da fonte abaixo entra em mais detalhes sobre as regras de nomeação.

Fonte Nomeando arquivos, caminhos e espaços para nome

    
por 18.01.2016 / 22:04
17

Não é um erro. É por design para evitar problemas de compatibilidade. É uma sobra dos velhos tempos do DOS.

Os sistemas de arquivos FAT12 (floppy) e FAT16 (FAT16 anterior ao suporte ao longo do nome de arquivo introduzidos no Windows 95) só tinham nomes de arquivos armazenados em 11 bytes:
8 bytes para o nome, 3 para a extensão. O "período" entre o nome e a extensão nem foi armazenado. Foi implícito e adicionado automaticamente para fins de exibição.
Os diretórios não tinham extensões. Em vez disso, os 3 bytes da extensão foram preenchidos com caracteres "$" (que eram ilegais em nomes reais). Como o Windows ainda é compatível com este Explorer e muitos outros componentes do Windows silenciosamente fazem com que o período à direita desapareça para evitar a criação de problemas de compatibilidade. Como outros afirmaram que você pode realmente lidar com essas pastas usando a semântica RAW (\\? \ Prefix antes do nome do caminho absoluto). Nos bastidores, NTFS e sistemas de arquivos de rede não têm nenhum problema com esses arquivos e pastas. É apenas um caso do Explorer tentando impedir que o usuário crie algo que possa causar problemas para outro software.

(Na verdade, existem outras sobras também:
Os nomes de arquivo como COM, COM1, COM2, AUX, PRN, LPT, LPT1, LPT2, LPT3, CON podem causar problemas semelhantes nos quais o Explorer e muitas outras partes do Windows ficam confusas, pois esses nomes são nomes "reservados" que também datam de a era DOS.)

    
por 20.01.2016 / 17:37
3

O problema aqui é que o Windows (DOS) permitia nomes de arquivos 8.3 em sistemas de arquivos FAT. Significado, 8 caracteres, seguido por um. seguido por três caracteres. Unix e Linux permitem qualquer caractere, exceto / e \ 0. \ 0 é o terminador de cadeia de caracteres C e / é o separador de diretórios. Todo o resto pode ser usado.

O Windows 95 contornou esse problema mantendo um banco de dados de nomes de arquivo curtos (8.3) em metadados Long File Names (LFN). Se você limpou seus arquivos do sistema operacional Windows 95, você ficaria com arquivos com nome estranho no disco na sua próxima instalação do Windows 95. Por exemplo, "Meus documentos" pode ser chamado MYDOCU ~ 1 no disco. Obviamente, se você perder os meta-dados, não conseguirá convertê-los facilmente.

O shell tem que lidar com muitos incrementos históricos que existem desde os dias do MS-DOS.

Espero que isso ajude

    
por 20.01.2016 / 21:06