[C++]Copie de masse de tout ce qu'il y a dan sun dossier

Signaler
Messages postés
25
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
18 novembre 2005
-
Messages postés
25
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
18 novembre 2005
-
Bonjour a tous!


J'ai fait un programme permettant de copier un fichier.


J'aimerai l'ameliorer de fasson a ce qu'il detecte tout les fichier d'un dossier et qu'il les copie tous . Cependant je ne sais pas comment faire :/


Si quelqun pourrait m'aider...


En attendant je vous donne le code du 1er programme :



<HR>


#include // dit d'utiliser iostream.h
#include <file.h> //utiliser les lib gestion de fichier
#include <file.c> //utiliser les lib gestion de fichier


int main() // debut du programme
{





cout << "Bienvenue dans la version 0.1" << endl;


//DECLARATION DES VARIABLES :


char FILE_NAME[100] ;
char FILE_2[100] ;
//FIN DE DECLARATION DES VARIABLES



cout << "Merci de selectionner le nom du fichier a copier: " << endl;
cin >> FILE_NAME ;
cout << "Tapez le nom du fichier copier: " << endl;
cin >> FILE_2 ;
cout << "le nom du fichier a copier est : " << FILE_2 << "\n Le nom du nom du fichier copier est : " << FILE_2 << endl;



FILECopy(FILE_NAME, FILE_2, 1, 3) ;

system("pause");
return 1;
}



Voila merci! j'espere que quelqun pourrai m'aider
SpyK

7 réponses

Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010

Salut SpyK,

Tu as la fonction

int findfirst(char* Repertoire, struct ffblk* InfoFichier, int Attribut)

définie dans "dir.h"

Cette fonction te renvoie le premier fichier/repertoire contenu dans le repertoire specifie.

Pour lister les autre fichier tu utilise

findnext(struct ffblk* InfoFichier)

qui te renvoie le fichier suivant.

un exemple de code serait :

#include <stdio.h>
#include <dir.h>

struct ffblk Info;
int Ok;

Ok = findfirst("c:\\*.*", &Info, 0); //0 pour pas d'attribut en particulier

while(!Ok)
{
printf(Info.ff_name);
Ok = findnext(&Info);
}

Bon courage

Oto
Messages postés
25
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
18 novembre 2005

Merci beaucoup pour ton aide rapide et precise

SpyK
Messages postés
25
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
18 novembre 2005

humf
Il me reste encore quelque probleme :/ Voici mon code :



<HR>



<HR>


#include // dit d'utiliser iostream.h
#include <stdio.h> //scan dossier
#include <dir.h> //scan dossier


int main() // debut du programme
{






cout << "go..." << endl;


struct ffblk Info;
int Ok;


Ok = findfirst("C:\Documents and Settings\tous.FAMILLE\Bureau\pho", &Info, 0); //0 pour pas d'attribut en particulier
cout << Ok << endl ; //Ici Ok contient -1 :/


while(!Ok)
{
printf(Info.ff_name); //affiche fichier
Ok = findnext(&Info); //Cherche prochain fichier et recommence ;)
}



system("pause");
return 1;
}

<HR>

<HR>
Le probleme c'est que Ok contient -1 :/ quesque sa veut dire?

SpyK
Messages postés
25
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
18 novembre 2005

Hm en faite plus precisement sa ne marche que sur C:\\ pour tout les autre dossier style : C:\\dossier1\*.* il ne trouve rien :/

SpyK
Messages postés
25
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
18 novembre 2005

Bon decidement je post beaucoup mais comme je ne peut pas modifier mes anciens post :/

En faite sa marche aussi quand on utilise des chemins relatifs a l'endroit ou est le programme de :
../../*.* marche parfaitement
mais C://dossier1/ ne marche pas
SpyK
Messages postés
66
Date d'inscription
vendredi 4 avril 2003
Statut
Membre
Dernière intervention
4 novembre 2010

salut SpyK

cette fois j'ai un peu traine pour repondre, dsl

le probleme vient du "dossier\*.*"

en effet si tu lui donne ca comme chemin, c++ interprete \* comme un seul caractere (\ désigne caractere d'echappement)

pour que ton repertoire soit valide il faut que tu ecrive : "c:\\dossier1\\dossier2\\*.*"

voili voilo

Oto
Messages postés
25
Date d'inscription
jeudi 29 avril 2004
Statut
Membre
Dernière intervention
18 novembre 2005

Ok merci tout marche impec ;)



SpyK