IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Windows 10 : Microsoft met silencieusement fin à la limitation à 260 caractères pour les chemins d'accès
Dans la Build 14352 en préversion

Le , par Stéphane le calme

778PARTAGES

10  0 
Les noms de fichiers Windows étaient autrefois limités à un format 8x.3x : le nom du fichier ne prenait alors que huit caractères et l’extension trois. Puis vint Windows 95 et une extension de ces limites. Il faut noter que le système de fichiers de Windows continue d’imposer certaines restrictions comme le nombre de caractères qui peuvent être utilisés pour les noms de fichiers ou le nombre de caractères pour les chemins d’accès. Si pour cette dernière elle était fixée à 260 caractères, la dernière préversion de Windows 10, la Build 14352, va venir briser cette limite. Une limite imposée par les applications utilisant l’API Win32, afin d’éviter des dépassements de tampon lors de l’utilisation d’un chemin d’accès, mais qui peut s’avérer très vite problématique pour des fichiers qui se situent loin dans l’arborescence de Windows.

Si Microsoft l’a passé sous silence lors de la présentation de la Build 14352, cette limite devrait passer à celle imposée par le NTFS lui-même, c’est-à-dire 32 767 caractères. La description de cette fonctionnalité est disponible dans l’éditeur de caractères : « l’activation des chemins d’accès longs de NTFS permettra aux manifestes d’applications Win32 et d’applications Windows Store d’accéder à des chemins au-delà de la limite normale de 260 caractères par nœud ».

Il faut noter que cette fonctionnalité n’est pas activée par défaut et qu’il faut le faire manuellement. Il suffit de se rendre dans l’éditeur de stratégie de groupe locale en cliquant sur le menu Démarrer puis en tapant l’entrée « gpedit.msc ». Il faudra alors se rendre à Stratégie Ordinateur local > Configuration ordinateur > Modèles d’administration > Système > Systèmes de fichiers > NTFS. Une fois à ce niveau, vous verrez une option vous permettant alors d’activer les chemins d’accès longs.


Si vous vous servez d’une version de Windows qui ne fournit pas un accès à l’éditeur de stratégie de groupe locale (Windows 10 en édition non professionnelle), il faudra passer par l’éditeur du registre. Cliquez sur le menu Démarrer, tapez « regedit.exe » et suivez ce chemin d’accès : HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy Objects\{48981759-12F2-42A6-A048-028B3973495F}Machine\System\CurrentControlSet\Policies

Une fois rendus à ce chemin, cherchez l’entrée « LongPathsEnabled ». Si elle n’existe pas, effectuez un clic droit, sélectionnez New DWORD (32-bit), renommez-le « LongPathsEnabled » (sans les guillemets), entrez la valeur 1 et le tour sera joué.

Comme vous pouvez le constater, ce changement apporté par Microsoft concerne non seulement les logiciels Win32, mais aussi les applications de son Windows Store, étant donné le rôle essentiel qu’elles jouent pour l’avenir de Windows. Dans le manifeste d’application, qui contient les informations liées à une application (telles que le nom, l'auteur, l'icône) dans un document qui peut être utilisé par les utilisateurs et les marchés d'applications, il faut se rassurer que les applications ajoutent une mention de cette nouvelle police afin de vérifier qu’elles prennent bien en charge les chemins d’accès allant au-delà des traditionnels 260 caractères.

Ce qui signifie que, à moins que cela ne soit spécifié, ce changement ne sera pas pris en compte. Les développeurs doivent donc mettre leurs applications à jour pour pouvoir bénéficier de cette fonctionnalité.

La fonction, qui est actuellement disponible sur la Build actuelle de la préversion de Windows 10, devrait être disponible sur tous les systèmes avec le lancement de la Windows 10 Anniversary Update (au nom de code Redstone) prévu pour cet été.

Source : blog Windows (disponibilité de la Build 14352), GHacks

Et vous ?

Qu'en pensez-vous ?

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de picrap
Futur Membre du Club https://www.developpez.com
Le 01/06/2016 à 21:00
En fait, NTFS n'est pas vraiment limité en profondeur de chemin.
Pour des raisons de compatibilité avec le vieux DOS, parce que ça n'est que ça, les chemins sont limités à 260 caractères lorsqu'on les utilise sous la forme habituelle (par exemple C:\monfichier). Ceci avait pour but de ne pas planter les nombreuses applications qui allouaient un buffer de 260 pour lire les chemins. Donc si vous voulez créer avec cette forme un fichier dont le chemin total dépasse les 260 caractères, ce n'est pas que le système ne peut pas, c'est qu'il ne veut pas.
Par contre, et cela existe depuis au moins 20 ans (ça remonte à Windows NT), il est possible de dépasser cette limite en préfixant les chemins par \\?\, (par exemple \\?\C:\monfichier), et la limite est alors poussée à 32767.
4  0 
Avatar de thewyx
Membre à l'essai https://www.developpez.com
Le 01/06/2016 à 8:55
Pour la petite histoire, du temps du 8+3 le nombre d'entrées par dossier était limité. Le passage à Win95 et les noms longs, s'est fait en utilisant un bug de la FAT : quand tous les attributs d'un fichier sont à vrai (caché, protégé en écriture, archive etc.) il devient totalement non listable. D'où l'idée d'utiliser ça pour Win95 : on découpe un nom long en paquets de 8+3. Avec la limitation du nombre d'entrée, on pouvait se voir interdire la création d'un fichier purement et simplement, surtout à la racine d'un disque. Et toutes les anciennes appli ne pouvaient pas voir les noms longs et listaient la la racine du fichier en 8+3.
Là il faut craindre la même chose. Microsoft a fait vivre un gros paradoxe : NTFS supporte 32769 de long, mais l'OS au dessus ne gère que des noms de 260 chemin compris ! Même si Windows 10 se met à le gérer quid des appli qui sont câblées en 260 ???? Quid des API ????
Comme beaucoup de monde je suppose, j'ai déjà été confronté au problème des "faux noms longs" de Windows, et même pire, la création par d'autres OS de fichiers qu'on ne pouvait ni renommer, ni déplacer, ni supprimer parce que trop long.
Bref, ça finira par arriver, mais ça prendra encore du temps...
3  0 
Avatar de Zefling
Expert confirmé https://www.developpez.com
Le 01/06/2016 à 9:00
Citation Envoyé par sazearte Voir le message
Sinon c'est toujours sympa de voir NTFS continuer d'évoluer, même après 20ans d'existence, mais j'imagine pas le bordel que sa être le code source du bousin, avec tous les patchs et surcouche rajouté au fils dans ans.
En fait, ce n’est pas NTFS qui a évolué, il a toujours parmi un chemin de 32k¹, c'est d'ailleurs bien ça le problème vu qu'on pouvait créer un chemin aussi long, mais l'OS lui était pas foutu d'y accéder. Là, c'est juste que Windows support correctement son propre système de fichiers, ce que je trouve hallucinant.

Édit : d'ailleurs je noterais que NTFS supporte les liens symboliques, mais que ça n'a jamais vraiment été mise en place.

¹ 32,767 Unicode characters with each path component (directory or filename) up to 255 characters long
3  0 
Avatar de araqiel
Nouveau membre du Club https://www.developpez.com
Le 31/05/2016 à 19:23
Enfin nous pourrons mettre nos projets Xamarin dans le dossier de Visual Studio et plus dans un dossier à nom court à la racine du disque.
C'était vraiment pénible cette limitation.
2  0 
Avatar de RyzenOC
Inactif https://www.developpez.com
Le 31/05/2016 à 19:38
L'activation de cette fonctionnalité peut elle entraîné des risques incompatibilité ?

si j'ai des vielles applications win32, (mais qui ont un chemin d’accès <260 caractères) vont elle continuer à fonctionner normalement ?
Et si inversement sa dépasse les 260 caractères que se passe t'il ?
2  0 
Avatar de Chauve souris
Membre expert https://www.developpez.com
Le 31/05/2016 à 23:52
Effectivement je bute souvent sur cette limitation avec des noms longs dans des arborescences à 6-10 niveaux. En particulier en programmation qui ne dépend pas complètement de moi à ce niveau.

Donc c'est une bonne chose et ma question sera : y aura-t-il un patch pour utiliser les noms (très) long sur Windows 7 et 8.1 (sans oublier les serveurs) ? On parle des versions 64 bits, bien sûr.
2  0 
Avatar de gretro
Membre averti https://www.developpez.com
Le 01/06/2016 à 4:43
Wow! Il était quand même temps, en 2016, de retirer cette limitation stupide. Combien de fois je me suis tapé des erreurs Powershell et autres avec ça, surtout avec des node_modules et des paths Sitecore.

En espérant vivement que ce patch fasse son chemin jusqu'aux anciennes versions de Windows (7, 8 et équivalents serveur).
2  0 
Avatar de Chauve souris
Membre expert https://www.developpez.com
Le 01/06/2016 à 14:12
Citation Envoyé par Zefling Voir le message

Édit : d'ailleurs je noterais que NTFS supporte les liens symboliques, mais que ça n'a jamais vraiment été mise en place.
A ce sujet il y a un petit utilitaire de Russinovitch (si je ne massacre pas son nom) "junction", bien pratique à utiliser dans un serveur FTP, par exemple.
2  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 01/06/2016 à 21:09
Bon à savoir, je testerais le prochain coup ou je me trouve avec des noms trop courts.
2  0 
Avatar de foetus
Expert éminent sénior https://www.developpez.com
Le 02/06/2016 à 15:17
Je pense que tu n'as pas compris le truc : Naming Files, Paths, and Namespaces

C'est ton URI qui peut faire 32768 caractères. Et tu mets "\\?\" pour dire à Windows que l'URI est longue: To specify an extended-length path, use the "\\?\" prefix. For example, "\\?\D:\very long path".
2  0