Java IO a-t-il une longueur de nom de fichier maximale?
Différents systèmes d'exploitation ont de nom de fichier différent max longueurs. Java a aucune limite sur la longueur du nom de fichier lorsque vous travaillez avec des fichiers?
source d'informationauteur Dónal Boyle
Vous devez vous connecter pour publier un commentaire.
Java n'a pas de maximum de la longueur du nom de fichier, sauf évidemment pour la Chaîne de caractères de longueur max limite (qui est la matrice de longueur maximale, c'est à dire Entier.MAX_VALUE). Peut-être que certaines machines virtuelles ont une limite inférieure, mais je n'ai jamais couru dans un problème (et je suis presque sûr qu'il y aurait un bug concernant les spécifications Java), certainement Systèmes d'exploitation peuvent en avoir un.
Windows dispose d'un des 256 caractères de nom de fichier long. Unix a à peu près la même chose, je crois. Ainsi, alors que le Java IO ne peut pas avoir une certaine longueur (la longueur de la Chaîne peut-être pour vous), il serait dépend de la mise en œuvre du système d'exploitation.
Java peut frapper le maximum longueur de la Chaîne: Chaîne de caractères de longueur Maximale en Java - l'appel de la longueur() la méthode
Java doit tourner tout le nom de fichier de chaînes dans un byte[] pour interagir avec le système d'exploitation. Cela signifie pour certains jeux de caractères, la limite sera de moins de 2 milliards de dollars. Cependant, je ne connais pas de système d'exploitation qui prend en charge les noms de fichier de cette longueur. 😉
glibc n'impose pas de limite, voir La Bibliothèque C de GNU, les limites pour les fichiers
Donc, Java n'a pas de limite, sauf la longueur maximum de la Chaîne depuis le système sous-jacent n'a pas. Sur Windows, les chemins peuvent être préfixés par \\?\ pour être illimité.
Depuis de nom de fichier est une Chaîne de caractères et la longueur et la position des méthodes de retourner un int, je dirais que le maximum est de type Entier.MAX_VALUE.