Accueil > Forum > > > > [Débutant] Déplacer tous les fichiers d'un répertoire A ver B, pb avec rename()
[Débutant] Déplacer tous les fichiers d'un répertoire A ver B, pb avec rename()
lundi 1 juin 2009 à 20:39:01 |
[Débutant] Déplacer tous les fichiers d'un répertoire A ver B, pb avec rename()

evenkil
|
Bonjour à tous. L'objectif de mon programme est : - lister à l'écran tous les fichiers contenu dans un repertoire A - transférer tous les fichier du répertoire A vers B Tout fonctionne sauf que j'ai un petit problème avec l'utilisation de la fonction rename, je ne sais pas trop m'en servir malgré avoir parcouru le man et les exemples. Pourriez vous m'éclairer sur son utilisation ? PS : auriez vous également une piste pour éviter que le programme n'affiche à l'écran les fichiers "." et ".." Merci beaucoup pour votre aide #include <stdio.h> #include <dirent.h> int main(void){ printf("Bienvenu, ce programme liste et deplace des fichiers\n"); printf("********************* **********************************\n"); while(1){ DIR * repSource = opendir("./dirA"); // on ouvre le répertoire A DIR * repDest = opendir("./dirB"); // on ouvre le répertoire B
if (repSource != NULL){ struct dirent * ent; printf("Le logiciel a trouvé les fichiers suivants : \n"); while ((ent = readdir(repSource)) != NULL){ printf("%s\n", ent->d_name);//on affiche la liste des fichiers //rename("./dirA/".ent->d_name, "./dirB/".ent->d_name); // c'est ici que je rencontre mon problème pour déplacer le fichier
} printf("-------On attend 5 seconde pour refaire l'opération-------\n"); printf("-------------------------------------------------------\n"); closedir(repSource); closedir(repDest); } else {printf("El directorio no existe \n");exit(1);} sleep(5);//esperamos 5 segundas antes de buscar de nuevo } return 0; }
|
|
lundi 1 juin 2009 à 23:35:42 |
Re : [Débutant] Déplacer tous les fichiers d'un répertoire A ver B, pb avec rename()

TychoBrahe
|
Salut,
Le C ce n'est pas comme le PHP ou autres truc du genre, le point n'est pas un opérateur de contaténation de chaînes de caractères. En conséquent, ton «"./dirA/".ent->d_name» & co ne compilera pas. Il te faut utiliser strcat ou une de ses amies pour obtenir le chemin (strncat est plus conseillée). Un conseil : au lieux de malloc un tableau tu peux te servir de la taille maximale d'un chemin pour te faire un tableau directement de cette taille. Cette taille est macro-définie dans limits.h (enfin, souvent dans un fichier inclu par ce dernier) et se nomme _POSIX_PATH_MAX , penses juste a define _GNU_SOURCE avant d'inclure limits.h et ce sera bon.
Sinon juste comme ça, c'est assez étrange de faire un programme a moitié en français et a moitié en espagnol. Bref, vive gettext.
|
|
lundi 8 juin 2009 à 05:09:03 |
Re : [Débutant] Déplacer tous les fichiers d'un répertoire A ver B, pb avec rename()

evenkil
|
merci pour votre réponse
mais ne fonctionne toujours pas avec
rename(strncat("./dirA/"),(ent->d_name),0), strncat ("./dirB/"),(ent->d_name),0);
|
|
lundi 8 juin 2009 à 05:16:16 |
Re : [Débutant] Déplacer tous les fichiers d'un répertoire A ver B, pb avec rename()

evenkil
|
Autre solution qui ne fonctionne pas :
char archivoA[128]; char archivoB[128] ...
archivoA=strcat("./dirA/",ent->d_name); archivoB=strcat ("./dirB/",ent->d_name); rename(archivoA,archivoB);
merci pour votre aide
|
|
lundi 8 juin 2009 à 09:48:03 |
Re : [Débutant] Déplacer tous les fichiers d'un répertoire A ver B, pb avec rename()

TychoBrahe
|
Salut, Je te conseille très fortement de relire le manuel de strcat. Tu y découvriras que strcat copie le contenu de la seconde chaîne a la suite de la première et qu'en conséquent : - la première chaîne ne peux pas être constante vu qu'elle doit être modifiée, or une chaîne en dure entre quotes est une chaîne constante (a moins de compiler avec -fwritable-strings ou -traditional). - la première chaîne doit avoir assez de place pour contenir la seconde, ce qui n'est pas le cas de ta chaîne en dur vu qu'elle a juste ce qu'il lui faut en mémoire. Bref, une solution est, comme je l'ai déjà dit, de se faire un tableau a l'aide de _POSIX_PATH_MAX et de l'utiliser. Un exemple simpliste : #define _GNU_SOURCE #include <limits.h> #include <limits.h> #include <string.h> int main(void) { char path[_POSIX_PATH_MAX]; strcpy(path, "/home/toto/"); strcat(path, "documents/machin.txt"); puts(path); return 0; }
|
|
Cette discussion est classée dans : répertoire, fichiers, printf, rename, ent
Répondre à ce message
Sujets en rapport avec ce message
fichiers bloqueée [ par montejc ]
Bonjour, <p class="MsoNormal" style="MA
supprimer tout les fichiers d'un répertoire [ par AoD ]
je recherche une fonction qui permet de supprimer tout les fichiers d'un répertoire.merci de vite me répondre
comment récupérer des noms de fichiers dans un répertoire particulier? [ par cnrs ]
Bonjour,Je débute dans le langage C donc désolé de vous déranger avec mes questions de débutant. Je voulais savoir s'il était possible de récupérer de
accéder à tous les fichiers d'un répertoire en C [ par ilyatout ]
Bonjour,J'aimerais savoir comment accéder à tous les fichiers d'un répertoire donné, de facon à pouvoir effectuer un traitement sur chaqun d'eux et ce
Installation et extraction de fichiers ... [ par MichaelLee ]
Salut a tous ... j'airécément terminer un script en Perl et En PHP et je voudrai créer un système d'extraction des fichiers (.php, .pl, .jpg, .gif e
Lecture de la liste des fichiers d'un répertoire distant [ par alain34270 ]
Bonjour,Je cherche un moyen d'obtenir la liste des fichiers d'un répertoire distant, ainsi que leurs attributs, connaisant l'URL du répertoire. Je sai
Liste de fichiers d'un rep [ par kharbout ]
Bonjour,Je m'excuse si ma question vous parait bête, je suis débutant on va dire.Je voudrais une aide pour lister la liste des fichiers d'un rep dont
Liste des fichiers d'un répertoire distant [ par yerosnimus ]
Bonjour,J'ai réussi à faire un programme qui me connecte sur mon serveur FTP.J'aimerai pouvoir affichier la liste des fichiers contenus dans le répert
comment lister simplement les fichiers d'un répertoire ? [ par nonocpp ]
comment lister simplement les fichiers d'un répertoire ?Merci d avance de vos idées...nonocpp
comment lister les fichiers les plus récents d'un répertoire ? [ par nonocpp ]
comment lister les fichiers les plus récents d'un répertoire ?Merci d avance de votre réponse...++nono
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|