Infelizmente, a resposta é " depende do programa ". Cabe às pessoas que escrevem os programas determinar qual método eles querem usar. Na verdade, (plugue sem vergonha) eu escrevi uma entrada no blog algumas semanas atrás, descrevendo o problema em Explorer ainda limitado por MAX_PATH .
Dependendo do que você está tentando fazer, você pode usar outro programa para gerenciar os caminhos longos, como o Microsoft Word. Caso contrário, sua única outra opção é apenas "viver com isso", já que tem sido assim para sempre e não parece estar mudando tão cedo.
Pensei também em mencionar que o Windows de 64 bits também usa a API "Win32" e o CreateFileA
para programas de 32 e 64 bits tem o problema.
EDIT: Detalhes do Geeky
O problema existe somente na função CreateFileA
e na função CreateFileW
quando um caminho absoluto com uma letra de unidade é usado. O único método para contorná-lo (no código) é usar a sintaxe \?\C:\Path\To\File.txt
... assim, mesmo os programas que usam CreateFileW
com um caminho de C:\Path\To\File.txt
têm o problema. É meio difícil de descrever, mas é desnecessário dizer que o maior motivo de programas que não suportam internamente a sintaxe \?\
é que eles perdem a capacidade de usar caminhos relativos (caminhos como ..\Documents\file.doc
).