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.


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.


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.



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


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


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.