O que faz com que caracteres inválidos (\\?\) apareçam antes de um caminho de arquivo?

O que faz com que caracteres inválidos (\\?\) apareçam antes de um caminho de arquivo?

O que faz com que caracteres inválidos ( \\?\) apareçam antes de um caminho de arquivo apenas em determinadas pastas?

Caminho de arquivo inválido:

\\?\D:\computerfiles...

Os arquivos com caminho inválido não podem ser abertos na pasta original.

Os \\?\caracteres só aparecem para alguns arquivos quando estão no local original, mas NÃO aparecem quando o arquivo é copiado para uma pasta diferente.

Só vejo isso quando encontro um arquivo que NÃO abre (como uma imagem) e verifico as Propriedades para detectar o prefixo inválido

Além disso, como posso localizar todos os caminhos com um prefixo inválido?

Responder1

Esse não é um personagem ilegal. É um sinal para o Windows desativar a manipulação de caminhos. Ele permite que você tenha caminhos maiores que MAX_PATH.

ConformeNomeando arquivos, caminhos e namespaces:

As funções de E/S de arquivo na API do Windows convertem "/" em "\" como parte da conversão do nome em um nome no estilo NT, exceto ao usar o prefixo "\\?\", conforme detalhado nas seções a seguir.

A API do Windows tem muitas funções que também possuem versões Unicode para permitir um caminho de comprimento estendido para um comprimento total máximo de 32.767 caracteres. Esse tipo de caminho é composto de componentes separados por barras invertidas, cada um até o valor retornado no parâmetro lpMaximumComponentLength da função GetVolumeInformation (esse valor geralmente tem 255 caracteres). Para especificar um caminho de comprimento estendido, use o prefixo "\\?\". Por exemplo, "\\?\D:\caminho muito longo".

Parece que o Windows Explorer foi habilitado em algum momento para acessar caminhos longos. No processo, você pode ver o seguinte no campo “Local” na página de propriedades de um arquivo/pasta:

  1. O caminho “normal”, se curto o suficiente
  2. O caminho dos nomes 8.3 (algo como C:\WHATEV~1\...), se existirem nomes 8.3 neste sistema de arquivos e se for curto o suficiente
  3. Caso contrário, o caminho de comprimento estendido

dr: Seu caminho é muito longo.

informação relacionada