O limite "clássico" é 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, o que pode ser alcançado adicionando \?\
para obter um caminho totalmente qualificado
The Windows API has many functions that also have Unicode versions to permit an extended-length path for a maximum total path length of 32,767 characters. This type of path is composed of components separated by backslashes, each up to the value returned in the lpMaximumComponentLength
parameter of the GetVolumeInformation
function (this value is commonly 255 characters). To specify an extended-length path, use the "\?\"
prefix. For example, "\?\D:\very long path"
.
Se, por algum motivo, os caminhos completos não puderem ser usados, os diretórios mais profundos poderão ser acessados pela montagem em uma letra de unidade com subst
/ diskpart
ou criando um junction / symlink para encurtar o caminho
Desde o Windows 10, o MAX_PATH
limit também foi removido, embora não por padrão
Starting in Windows 10, version 1607, MAX_PATH
limitations have been removed from common Win32 file and directory functions. However, you must opt-in to the new behavior.
https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file