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

alexou09 Messages postés 25 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 novembre 2005 - 23 janv. 2005 à 20:17
alexou09 Messages postés 25 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 novembre 2005 - 27 janv. 2005 à 19:16
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

otofraise Messages postés 66 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 4 novembre 2010
24 janv. 2005 à 09:07
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
0
alexou09 Messages postés 25 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 novembre 2005
25 janv. 2005 à 15:57
Merci beaucoup pour ton aide rapide et precise

SpyK
0
alexou09 Messages postés 25 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 novembre 2005
25 janv. 2005 à 16:13
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
0
alexou09 Messages postés 25 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 novembre 2005
25 janv. 2005 à 17:43
Hm en faite plus precisement sa ne marche que sur C:\\ pour tout les autre dossier style : C:\\dossier1\*.* il ne trouve rien :/

SpyK
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alexou09 Messages postés 25 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 novembre 2005
25 janv. 2005 à 17:51
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
0
otofraise Messages postés 66 Date d'inscription vendredi 4 avril 2003 Statut Membre Dernière intervention 4 novembre 2010
27 janv. 2005 à 10:24
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
0
alexou09 Messages postés 25 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 novembre 2005
27 janv. 2005 à 19:16
Ok merci tout marche impec ;)



SpyK
0
Rejoignez-nous