Comment séparer une plate-forme de chemin indépendante?
J'utilise le code suivant pour obtenir un tableau avec tous les sous-répertoires à partir d'un chemin donné.
String[] subDirs = path.split(File.separator);
J'ai besoin de la matrice de vérifier si certains dossiers sont à la bonne place dans ce chemin.
Ce qui semblait être une bonne solution jusqu'à ce que findBugs se plaint de ce que la Fichier.séparateur est utilisé comme une expression régulière. Il semble que le passage de windows séparateur de fichiers à une fonction qui est de construire une regex c'est une mauvaise idée parce que la barre oblique inverse étant un caractère d'échappement.
Comment puis-je diviser le chemin d'accès à une plate-forme de chemin sans l'aide de Fichier.séparateur?
Ou est le code comme ça d'accord?
String[] subDirs = path.split("/");
source d'informationauteur Janusz
Vous devez vous connecter pour publier un commentaire.
Utilisation
path.getParentFile()
à plusieurs reprises pour obtenir tous les composants d'un chemin d'accès.Découragé façon serait depath.replaceAll("\\", "/").split("/")
.Literalizing chaînes de modèle
Chaque fois que vous devez literalize arbitraire
String
pour être utilisé comme une expression régulière pattern, utilisezSchéma.citation
:À partir de l'API:
Cela signifie que vous pouvez effectuer les opérations suivantes:
Literalizing chaînes de remplacement
Si vous avez besoin de literalize l'arbitraire d'un remplacement
String
utilisezMatcher.quoteReplacement
.À partir de l'API:
Cette cité de remplacement
String
est également utile dansString.replaceFirst
etString.replaceAll
:Exemples
java.nio.fichier.Chemin implémente
Iterable<Path>
de sorte que vous pouvez faire:Méthodes getNameCount et getName peut être utilisé pour un but similaire.
Vous pouvez utiliser le Chemin de l'interface:
Créer une liste vide et utiliser forEach pour parcourir les éléments de chemin d'accès de l'insertion de chacun dans la liste pour plus tard:
Aussi, si vous avez besoin d'un élément du chemin utilisation:
où
<pathObject>
est renvoyé par un appel àPaths.get()
et si vous avez besoin de plusieurs parties du chemin retourné dans une chaîne de caractères utilisez:Vous pouvez obtenir le nombre total d'éléments de chemin d'accès (pour une utilisation dans
<intEnd>
) avec:Il y a d'autres méthodes utiles à la Java Chemin et Les chemins de doc pages.
Ce sujet