Je veux extraire le nom d'un chemin absolu. Si j'ai une chaîne avec la valeur/mnt/sdcard/Videos/Videoname, je souhaite enregistrer une chaîne avec la valeur Videoname.
La chaîne change et je ne peux pas obtenir auparavant le nombre de barres obliques. Comment pourrais-je séparer une sous-chaîne de la dernière barre oblique?
/ mnt/sdcard/Vidéos/Nom vidéo -> Videnoname
Vous devriez passer par le File
api. Extrait de la File.getName()
documentation:
Renvoie le nom du fichier ou du répertoire désigné par ce chemin abstrait. Ce n'est que le dernier nom de la séquence de noms du chemin d'accès. Si la séquence de noms du nom de chemin est vide, la chaîne vide est renvoyée.
Exemple:
String name = new File("/mnt/sdcard/Videos/Videoname").getName();
Si vous avez obtenu un objet "File", vous pouvez le récupérer avec la méthode suivante:
String fileName = myFile.getName();
Si vous l'avez obtenu à partir d'une simple chaîne, vous pouvez utiliser
String fileName = myString.substring(myString.lastIndexOf("/")+1);
String path = "/mnt/sdcard/Videos/Videoname"; // Your path
String fileName = new File(path).getName(); // you file name
Le moyen le plus simple est
String path ="AnyDirectory/subFolder/last.htm";
int pos = path.lastIndexOf("/") + 1;
path.substring(pos, path.length()-pos);
Maintenant, vous avez le last.htm dans la chaîne de chemin.
Mais avec un peu plus de recherche, le code suivant fonctionne ...
String[] Tokens = stringPath.split("\\\\");
Vous devez échapper deux fois au "\".
string a = "/foo/bar/target";
string words = a.Split("/")
string target = words[words.length-1]