it-swarm.dev

Qual é o caminho de arquivo mais longo que o Windows pode manipular?

Qual é o caminho de arquivo mais longo que o Windows pode manipular?

56
Ron Tuffin

comprimento máximo do caminho (do MSDN)

Na API do Windows (com algumas exceções discutidas nos parágrafos a seguir), o comprimento máximo de um caminho é MAX_PATH, que é definido como 260 caracteres . Um caminho local é estruturado na seguinte ordem: letra da unidade, dois-pontos, barra invertida, componentes separados por barras invertidas e um caractere nulo de terminação. Por exemplo, o caminho máximo na unidade D é "D:\<cadeia de caminho de 256 caracteres> <NUL>" onde "<NUL>" representa o caractere nulo final invisível para a página de código atual do sistema. (Os caracteres <> são usados ​​aqui para maior clareza visual e não podem fazer parte de uma cadeia de caminho válida.)

47
Adam Matan

Caminho do arquivo XP - 250 caracteres

Caminho do arquivo do Vista - 260 caracteres

O caminho mais longo em uma instalação limpa do Windows XP é de 152 caracteres.

O caminho mais longo em uma instalação semi-limpa do Windows Vista é de 195 caracteres:

Windows XP permite nomes de arquivo até 255 caracteres de comprimento

O Windows Vista permite nomes de arquivo ainda maiores contendo até 260 caracteres.

http://www.codinghorror.com/blog/archives/000729.html

15
joe

A constante do Windows MAX_PATH é igual a 260, pois outras respostas indicam, no entanto, o caminho mais longo real é 32767.

Veja aqui .

32k está usando UNICODE, mas agora devemos usá-lo, portanto, também devemos usar esse tamanho máximo de caminho.

Além disso, você pode dar uma olhada em minha resposta no SO , que explica algumas coisas mais detalhadas sobre o comprimento máximo do caminho.

8
ST3

O "classic" limite é 26 caracteres: drive letter + :\ + 255 characters of filename + \ (ou para arredondamento) + null terminator como dito nas outras respostas

No entanto, o limite interno real é 32767 caracteres que podem ser obtidos adicionando \\?\ para obter um caminho totalmente qualificado

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

Se, devido a algumas razões, os caminhos totalmente qualificados não puderem ser usados, os diretórios mais profundos poderão ser acessados ​​montando uma letra de unidade com subst / diskpart ou criando um junção / link simbólico para reduzir o caminho

Desde o Windows 10, o limite MAX_PATH também foi removido, embora não por padrão

A partir do Windows 10, versão 1607, as limitações MAX_PATH foram removidas das funções comuns de arquivo e diretório do Win32. No entanto, você deve aceitar o novo comportamento.

https://docs.Microsoft.com/pt-br/windows/desktop/FileIO/naming-a-file

1
phuclv