Les informations citées sur l'API Windows ne sont pas tout à fait exactes:
D'un côté, on a bien en effet une limitation "historique" de l'API Windows 32 à 260 caractères, et d'un autre côté on a effectivement une limite de 32767 caractères pour les noms de chemins/fichiers dans NTFS.
Mais en fait, la limite de 260 caractères citée ne touche que CERTAINES fonctions de l'API Windows 32, et pour la plupart il existe depuis des années un contournement de ces limites dans l'API Windows 32 en utilisant le préfixe "\\?\" dans les noms de chemins/fichiers passés aux fonctions d'API. Ca fonctionne depuis au moins Windows 7, voire depuis Vista ou XP...
Il existe par conséquent 2 catégories d'applications Windows:
1) les applications Windows MAL DEVELOPPEES (qui incluent l'explorateur Windows "explorer.exe") qui souffrent de cette limitation de 260 caractères car n'utilisant pas le préfixe mentionné pour passer outre la limitation historique.
2) Les applications Windows BIEN DEVELOPPEES (dont certaines par Microsoft, comme l'utilitaire en ligne de commande "ROBOCOPY.exe" fourni dans Windows et qui permet de copier des arborescences avec des chemins dépassant les 260 caractères...), et d'autres utilitaires comme 7-Zip (versions supérieures à 9.38 de mémoire).
Donc, bonne nouvelle en tous cas pour Windows 10, il semble que Microsoft ait tout simplement ENFIN réécrit "explorer.exe" correctement...
Sources:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
https://blogs.msdn.microsoft.com/bcl...-kim-hamilton/
De mon côté, je n'ai pas de "Group Policy Objects" pour une build 1511.
Pour bien faire, il faudrait que tous ceux d'entre nous qui ont fait du code sous Windows examinent leur code et remplacent MAX_PATH par une nouvelle constante valant (32767+1). Et s'assurent de ne pas stocker la taille en short quelque part.
Edit: Et probablement, sortir ces buffers de la pile, et donc devoir faire de l'allocation dynamique, en gérant l'échec potentiel... Pas trop un problème pour un code C++ déjà basé sur les exceptions, mais pour un code C...
Je suis régulièrement em#d@r par cette limite car si Windows possède bien cette limite ce n'est pas le cas de son système de fichiers.
résultat j'ai des outils qui créent des chemin bien plus long et là hélas impossible de les manipuler avec windows. impossible de déplacer des éléments de les supprimer etc.
la solution monter le disque avec un autre OS qui sait gérer NTFS et là c'est magique on peut faire le ménage qui va bien.
il existe probablement des outils pour gérer ce problème mais je n'ai pas trouvé.
A+JYT
Bonjour
Auriez vous des explications supplémentaires pour activer la possibilité des faire des noms longs sur windows 10 familiale ?
Ce qui est étrange c'est que je n'avais pas ce problème précédemment.
J'ai constaté le problème lorsque j'ai voulu faire une copie de sauvergarde de mes répertoires dropbox et aussi lorsque j'ai voulu effacer les répertoires.
Bien à vous
Bonjour,
J'imagine que ce problème est corrigé sous Windows Server 2016 à partir de la version Standard ?
Merci pour vos retours
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager