Utilisation de la fonction rename

maniqk -  
 maniqk -
Bonjour,

Je cherche à renommer un fichier ou dossier à l'aide de la fonction rename.
Le programme suivant tourne sans problème :

int main(){
    char old[] = "C:\\Desktop\\ref1";
    char nouveau[] = "C:\\Desktop\\ref2";
    char old2[] = "C:\\Desktop\\ref2\\ref3";
    char nouveau2[] = "C:\\Desktop\\ref2\\ref4";
    char old3[] = "C:\\Desktop\\ref2\\ref3\\cdu\\ref1-ref3cdu.ini";
    char nouveau3[] = "C:\\Desktop\\ref2\\ref4\\cdu\\ref2-ref4cdu.ini";
    char old4[] = "C:\\Desktop\\ref2\\ref3\\check_dci\\ref1-ref3Check.ini";
    char nouveau4[] = "C:\\Desktop\\ref2\\ref4\\check_dci\\ref2-ref4Check.ini";
    char old5[] = "C:\\Desktop\\ref2\\ref3\\check_dci\\ref1-ref3Liste.xls";
    char nouveau5[] = "C:\\Desktop\\ref2\\ref4\\check_dci\\ref2-ref4Liste.xls";

    rename(old, nouveau);
    rename(old2, nouveau2);
    rename(old3, nouveau3);
    rename(old4, nouveau4);
    rename(old5, nouveau5);

    return 0;
}


C'est peut être pas très clair mais je cherche en fait à renommer toute une arborescence et les fichiers qui sont à l'intérieur, en passant d'une ancienne référence à une nouvelle. Etant donné que j'ai des dizaines de fichiers à renommer, je voudrais automatiser ça en rentrant seulement les références "ref1", "ref2", "ref3", "ref4", tout le reste ne changeant pas. Pouvez vous me dire la manière de procéder ?

Question subsidiaire : comment faire une boucle sur les fonctions rename ?

Merci d'avance,
maniqk


A voir également:

1 réponse

chris79 Messages postés 97 Date d'inscription   Statut Membre Dernière intervention   25
 
Salut Maniqk,

Il est d'usage de faire ce type d'opération en ligne de commande plutôt qu'en C..mais soyons fou ;)

Sinon es tu sûr de ton code ? J'ai du mal à comprendre l'arborescence de départ...

Tu écris :
/* rename "C:\\Desktop\\ref2\\ref3\\cdu\\ref1-ref3cdu.ini" en
 * "C:\\Desktop\\ref2\\ref4\\cdu\\ref2-ref4cdu.ini"
 */ 
rename(old3, nouveau3);

mais auparavant tu as renommé le répertoire ref3 en ref4...

++
0
maniqk
 
Bonjour chris,
Je ne m'y connais pas trop en lignes de commande... :s (bon je m'y connais pas beaucoup en C non plus).
Pour le code oui je me suis peut être un peu embrouillé en mettant des références comme ça, mais en effet il ne devrait pas y avoir de ref3 à partir de la ligne 6, sauf si c'est un nom de fichier à renommer.
0