Extraire le nom et le chemin d'un nom de fichier

Il est courant, lorsque l'on utilise des fichiers informatiques, qu'il faille extraire certaines partie des noms de fichier : renommer, accéder au sous-dossier, etc...

Extraire le nom

Si filename est le nom de fichier de type QString et name le nom du fichier :

nom=filename.section("/",-1,-1);

Extraire le chemin

chemin=filename.section("/",0,-2);

Extraire l'extension

ext=(".",-1,-1);


Remarques sur SECTION

la méthode SECTION permet d'extraire une sous chaîne d'une chaîne de type QString.

La chaîne est traitée comme une séquence de chaînes (des champs) séparées par le séparateur.

champ1<separateur>champ2<separateur>champ3<separateur>champ4


les paramètres sont

    • le séparateur
    • la position de début
    • la position de fin


Pour les positions de début et de fin :

des valeurs positives correspondent à une scrutation de gauche vers la droite

des valeurs négatives, une scrutation de la droite vers la gauche.

Ainsi :

nom=filename.section("/",-1,-1);

le premier caractère de la sous chaîne sera le caractère le plus à droite (-1); le deuxième caractère serait -2, etc....

on s'arrête lorsque, en commençant par le dernier caractère on trouve le séparateur "\".

Si filename="D:/Programmation/QTCreator/inward/inward/nom.ext" le premier champ le plus à droite est nom.ext


De même

chemin=filename.section("/",0,-2);

La sous chaîne commence du champ le plus à gauche (0) et s'arrête à l'avant dernier champ ce qui exclus le nom du fichier.

Si filename="D:/Programmation/QTCreator/inward/inward/nom.ext" le premier champ le plus à gauche est d: et le deuxième le plus à droite est inward. Le résultation de SECTION donne donc "D:/Programmation/QTCreator/inward/inward