O Windows 7 corrigiu o limite do caminho do arquivo de 255 caracteres?

92

Pelo que entendi, a limitação de 255 caracteres em um caminho de arquivo é uma limitação do Windows. Qual é o motivo disso? Em caso afirmativo, isso foi resolvido no Windows 7?

Em nossas práticas de integração contínua, muitas vezes temos estruturas de projeto profundamente aninhadas e seria extremamente útil poder ir além de 255 caracteres. No momento, estamos um tanto forçados a estruturar nossos projetos de forma a não atingir esse teto artificial.

O Matt
fonte
3
@DavidHeffernan Mas isso 260 inclui o caractere nulo no final e o `C: \` no início, então apenas 255 caracteres podem ser usados.
Aaron Dufour
2
@DavidHeffernan Eu estava enganado. A Microsoft freqüentemente cita o comprimento como 256, que é o que você obtém quando subtrai corretamente, em vez de 260, que é tecnicamente o limite.
Aaron Dufour
5
Este problema me enfurece. Ele ainda está presente no Windows 8.1. Não consigo mover meus arquivos, embora DE ALGUMA MANEIRA o arquivo tenha sido criado. Se você encontrar uma maneira de criar arquivos com mais de 255 nomes de caminho de arquivo, poderá bagunçar totalmente a máquina Windows de alguém.
Automatico,
Segundo Jeremy Kuhne, o problema está sendo trabalhado e em breve poderá ter uma solução. Veja este vídeo. youtube.com/watch?v=ZppqEMegCAA
J Edward Ellis
A pergunta é sobre o Windows 7, mas de qualquer maneira, o Windows 10 tem uma opção para ativar caminhos longos para alguns aplicativos. Para obter mais detalhes, verifique esta resposta: stackoverflow.com/questions/27680647/…
quasoft

Respostas:

44

Consulte http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

Isso explica que as versões Unicode das APIs do Windows têm limites mais altos e como habilitá-los.

Drew Hoskins
fonte
14
Mas um aviso: há um monte de código (principalmente utilitários de sistema de terceiros e similares) que não funciona bem com caminhos mais longos. Você pode ter problemas com isso se começar a usar caminhos mais longos.
ReinstateMonica Larry Osterman
2
Este artigo está correto? Fiz um teste simples com o Windows Explorer e o prompt de comando do Windows 7 e não consigo criar caminhos de arquivo com mais de 260 caracteres. A Microsoft não atualizou esses aplicativos para usar as versões Unicode das APIs do Windows?
Templário de
7
Infelizmente, o Windows Explorer no Windows 7 x64 ainda está sujeito a esse limite de caminho. Isso dá a impressão de que todo o sistema operacional não superou esse limite, quando na verdade é apenas o Windows Explorer que não foi atualizado para trabalhar com caminhos mais longos. É possível que um gerenciador de arquivos de terceiros usando as APIs mais recentes possa contornar isso. Em última análise, se um programa parece atingir o limite do caminho, dependerá se esse programa usa as APIs mais recentes no Windows.
user1445967
2
Não é uma questão de APIs "mais recentes" ou "mais antigas". Você só obtém suporte de caminho longo se o solicitar explicitamente, e o Explorer não o faz, provavelmente pelo motivo óbvio: compatibilidade com aplicativos existentes de terceiros.
Harry Johnston
9
-1 - Um link para uma solução potencial é sempre bem-vindo, mas adicione contexto ao link para que seus outros usuários tenham uma ideia do que é e por que está lá. Sempre cite a parte mais relevante de um link importante, caso o site de destino esteja inacessível ou fique permanentemente offline. meta.stackoverflow.com/tags/link-only-answers/info
Aaron Hall
20

Você pode contornar esse limite usando subst, se necessário.

Joshua
fonte
1
Ou robocopy integrado ao Windows, com base nesta resposta, stackoverflow.com/questions/29865863/…
KAE
5
Você deve demonstrar como e fornecer um link para a documentação relevante. -1
Aaron Hall
3
Embora eu tenha votado positivamente, concordo que um exemplo seria útil: subst E: D:\TESTDATA\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1 Isso me levou a um caminho com 500 caracteres de profundidade. O motivo dos ~ 1s é a maneira como o Explorer formatou o caminho.
Adam Marcionek
1
Uma solução semelhante seria usar junções , por meio de uma extensão de shell ou por meio de mklink. Exemplo:mklink /J C:\newdir C:\some\really\long\path\
Charles Grunwald
14

As soluções alternativas não são soluções, portanto, a resposta é "Não".

Ainda procurando soluções alternativas, aqui estão as soluções possíveis: http://support.code42.com/CrashPlan/Latest/Trou troubleshooting / Windows_File_Paths_Longer_Than_255_Characters

user1767754
fonte
1
Os principais elementos do Windows, incluindo o PowerShell, o shell do Windows Explorer e utilitários cmd como o del, ainda não conseguem lidar com caminhos que excedem 250 caracteres, e nenhuma solução alternativa corrige o fato de que as principais tecnologias da Microsoft não lidam com caminhos longos, a partir de 2016. A resposta curta aqui é até que a Microsoft coloque seu pessoal em marcha, há pouco que podemos fazer.
Warren P
4

@ Cort3z: se o problema ainda estiver presente, este hotfix: https://support.microsoft.com/en-us/kb/2891362 deve resolvê-lo (de win7 sp1 a 8.1)

ale.com
fonte
Esta é uma otima soluçao. Você teve algum problema depois de usá-lo?
Gabriel Fair