Java a divisé le chemin ..?
C'est l'entrée de chaîne:
"C:\jdk1.6.0\bin\program1.java"
J'ai besoin de sortie:
Path-->C:\jdk1.6.0\bin\
file--->program1.java
extension--->.java
Regarder les "\" char. J'ai facilement obtenu de sortie pour "/".
source d'informationauteur yuvaraj
Vous devez vous connecter pour publier un commentaire.
La Fichier classe vous donne tout ce dont vous avez besoin:
EDIT: Merci Dave pour noter qu'Chaîne.lastIndexOf sera de retour -1 si Fichier.getName ne contient pas de '.'.
Envisager l'utilisation d'une solution existante au lieu de rouler votre propre et en introduisant plus de code qui doit être testé. FilenameUtils de Apache Commons IO est un exemple:
http://commons.apache.org/proper/commons-io/javadocs/api-2.4/org/apache/commons/io/FilenameUtils.html
Depuis Java
File
classe ne supporte pas de sondage pour l'extension, je vous suggère de créer une sous-classe deFile
qui offre cette possibilité:Maintenant, il vous suffit de remplacer votre version de Fichier de Java version et, lorsqu'il est combiné avec Kurt réponse, vous donne tout ce dont vous avez besoin.
Avis que l'utilisation d'une sous-classe est idéal parce que, si vous vouliez changer le comportement (en raison d'un autre système d'exploitation à l'aide d'une extension différente délimiteur de jeton), vous avez seulement besoin de mettre à jour une méthode unique et l'ensemble de votre application continue de fonctionner. (Ou si vous avez besoin de corriger un bug, comme par exemple essayer d'exécuter
str.substring( -1 )
.)En d'autres termes, si vous extrayez un fichier d'extension dans plus d'un endroit dans votre base de code, vous avez fait une erreur.
D'aller plus loin, si vous vouliez faire complètement abstraction de la connaissance du type de fichier (parce que certains systèmes d'exploitation ne pourraient pas utiliser le
.
séparateur de), vous pourriez écrire:Je ne considère pas cela un beaucoup plus robuste solution. De cette façon transparente permettre la substitution d'un plus avancé type de fichier mécanisme de détection (analyse de contenu du fichier pour déterminer le type), sans avoir à modifier le code appelant. Exemple:
Si un utilisateur enregistré "monfichier.png" comme "myfile.txt" l'image est encore être traitées, car la version avancée (non montré ici) serait à la recherche de la "PNG" marqueur qui commence chaque fichier PNG dans le (cyber) monde.
Vous avez besoin pour compenser le double slash retourné dans le Chemin d'accès (si elle a été généré par programmation).