Utilisation de la fonction rename

Fermé
maniqk - 21 sept. 2015 à 14:33
 maniqk - 24 sept. 2015 à 09:54
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 lundi 3 octobre 2005 Statut Membre Dernière intervention 1 février 2016 25
Modifié par chris79 le 23/09/2015 à 20:38
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
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