Windows 7 a-t-il corrigé la limite de chemin de fichier de 255 caractères?


92

Si je comprends bien, la limitation de 255 caractères dans un chemin de fichier est une limitation de Windows. Quel en est le raisonnement? Si tel est le cas, cela a-t-il été résolu dans Windows 7?

Dans nos pratiques d'intégration continue, nous avons souvent des structures de projet profondément imbriquées et il serait extrêmement utile de pouvoir aller au-delà de 255 caractères. Actuellement, nous sommes un peu obligés de structurer nos projets de manière à ne pas atteindre ce plafond artificiel.


3
@DavidHeffernan Mais cela 260 inclut le caractère nul à la fin et le `C: \` au début, donc seuls 255 caractères sont utilisables.
Aaron Dufour

2
@DavidHeffernan Je me suis trompé. Microsoft cite souvent la longueur comme 256, ce que vous obtenez lorsque vous soustrayez correctement, plutôt que 260, ce qui est techniquement la limite.
Aaron Dufour

5
Ce problème me met en colère. Il est toujours présent dans Windows 8.1. Je n'arrive pas à déplacer mes fichiers, même si CERTAINEMENT le fichier a été créé en premier lieu. Si vous trouvez un moyen de créer des fichiers avec plus de 255 noms de chemin de fichier, vous pouvez totalement gâcher la machine Windows de quelqu'un.
Automatico

Selon Jeremy Kuhne, le problème est en cours d'élaboration et pourrait bientôt trouver une solution. Regardez cette vidéo. youtube.com/watch?v=ZppqEMegCAA
J Edward Ellis

La question concerne Windows 7, mais de toute façon, Windows 10 a l'option d'activer les longs chemins pour certaines applications. Pour plus de détails, consultez cette réponse: stackoverflow.com/questions/27680647/…
quasoft

Réponses:


44

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

Cela explique que les versions Unicode des API Windows ont des limites plus élevées et comment l'activer.


14
Mais un mot d'avertissement: il y a un tas de code (principalement des utilitaires système tiers et autres) qui ne fonctionnent pas bien avec des chemins plus longs. Vous pouvez avoir des problèmes avec cela si vous commencez à utiliser des chemins plus longs.
ReinstateMonica Larry Osterman le

2
Cet article est-il correct? J'ai fait un test simple avec l'explorateur Windows et l'invite de commande Windows dans Windows 7 et je ne suis pas en mesure de créer des chemins de fichiers avec plus de 260 caractères. Microsoft n'a-t-il pas mis à jour ces applications pour utiliser les versions Unicode des API Windows?
Templar

7
Malheureusement, l'Explorateur Windows sur Windows 7 x64 est toujours soumis à cette limite de chemin. Cela donne l'impression que l'ensemble du système d'exploitation n'a pas dépassé cette limite, alors qu'en réalité, il s'agit simplement de l'explorateur Windows qui n'a pas été mis à jour pour fonctionner avec des chemins plus longs. Il est possible qu'un gestionnaire de fichiers tiers utilisant les dernières API puisse contourner ce problème. En fin de compte, le fait qu'un programme semble atteindre la limite de chemin dépendra du fait que ce programme utilise les API les plus récentes sous Windows.
user1445967

2
Ce n'est pas une question d'API «plus récentes» ou «plus anciennes». Vous n'obtenez la prise en charge des longs chemins que si vous le demandez explicitement, et Explorer ne le fait pas, probablement pour la raison évidente: la compatibilité avec les applications tierces existantes.
Harry Johnston

9
-1 - Un lien vers une solution potentielle est toujours le bienvenu, mais veuillez ajouter du contexte autour du lien afin que vos collègues utilisateurs aient une idée de ce que c'est et pourquoi il est là. Citez toujours la partie la plus pertinente d'un lien important, au cas où le site cible serait inaccessible ou serait définitivement hors ligne. meta.stackoverflow.com/tags/link-only-answers/info
Aaron Hall

20

Vous pouvez contourner cette limite en utilisant subst si vous en avez besoin.



1
Ou robocopy qui est intégré à Windows, basé sur cette réponse, stackoverflow.com/questions/29865863/...
KAE

5
Vous devez démontrer comment et fournir un lien vers la documentation pertinente. -1
Aaron Hall

3
Bien que j'aie voté pour, je conviens qu'un exemple serait utile: 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 cela m'a permis de contourner un chemin de 500 caractères de profondeur. La raison des ~ 1 est la façon dont Explorer a formaté le chemin.
Adam Marcionek

1
Une solution similaire consisterait à utiliser des jonctions , soit via une extension shell, soit via mklink Exemple:mklink /J C:\newdir C:\some\really\long\path\
Charles Grunwald

14

Les solutions de contournement ne sont pas des solutions, donc la réponse est "Non".

Toujours à la recherche de solutions de contournement, voici des solutions possibles: http://support.code42.com/CrashPlan/Latest/Troubleshooting/Windows_File_Paths_Longer_Than_255_Characters


1
Les éléments de base de Windows, y compris PowerShell, Windows Explorer Shell et les utilitaires cmd comme del ne peuvent toujours pas gérer les chemins dépassant 250 caractères, et aucune solution de contournement ne résout le fait que les technologies de base de Microsoft ne gèrent pas les longs chemins, à partir de 2016. La réponse courte ici Jusqu'à ce que Microsoft mette en marche ses arrières collectifs, nous ne pouvons pas faire grand-chose.
Warren P


1

À partir de Windows 10 version 1607, la limitation a été supprimée en définissant une clé de registre

https://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx?f=255&MSPPError=-2147217396#maxpath


2
mais pas dans Windows 7?
gumuruh

Il ne semble pas raisonnable de voter contre cela, car même si cela ne répond pas à la question, il est probablement utile pour de nombreuses personnes qui ont des questions similaires.
mwfearnley

Il y a cependant d'autres questions couvrant Win10
mjs
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.