Qual é o caminho de arquivo mais longo que o Windows pode manipular?
Qual é o caminho de arquivo mais longo que o Windows pode manipular?
Respostas:
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, 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 final. Por exemplo, o caminho máximo na unidade D é "D: \ <alguma cadeia de caracteres 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.)
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:
O Windows XP permite nomes de arquivos com até 255 caracteres
O Windows Vista permite nomes de arquivos ainda mais longos, contendo até 260 caracteres.
A constante do Windows MAX_PATH
é igual a 260, como outras respostas dizem, 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 na minha resposta no SO, que explica algumas coisas mais detalhadas sobre o comprimento máximo do caminho.
O limite "clássico" é de 260 caracteres: drive letter
+ :\
+ 255 characters of filename
+ \
(ou para arredondamento) + null terminator
como dito nas outras respostas
No entanto, o limite interno real é de 32767 caracteres, que podem ser alcançados anexando \\?\
-se a um caminho completo.
A API do Windows possui muitas funções que também possuem versões Unicode para permitir um caminho de tamanho 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
lpMaximumComponentLength
parâmetro daGetVolumeInformation
função (esse valor geralmente possui 255 caracteres). Para especificar um caminho de tamanho estendido, use o"\\?\"
prefixo. Por exemplo"\\?\D:\very long path"
,.
Se, por algum motivo, os caminhos totalmente qualificados não puderem ser usados, os diretórios mais profundos poderão ser acessados montando-se em uma letra de unidade com subst
/ diskpart
ou criando uma junção / link simbólico para encurtar o caminho
Desde o Windows 10, o MAX_PATH
limite também foi removido, embora não por padrão
A partir do Windows 10, versão 1607, as
MAX_PATH
limitações 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/en-us/windows/desktop/FileIO/naming-a-file