Copier des fichiers

Signaler
Messages postés
76
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
3 juillet 2007
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
bjr a tous alors simplement j'aurai aime savoir comment copier des fichiers en C++ pour le moment j'utilise la fonction copyfile() mais cela ne marche qu'avec les fichier txt apres il me genere une unhandled exception => j'aurai voulu savoir comment soit gerer cette exception ( avec un petit exemeple si possible ) soit savoir s'il existe une autre fonction qui marche avec toute les extension de fichiers existantes :)

Merci d'avance !

6 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
CopyFile() de API Win ???
Si oui, elle copie absolument tous les fichiers et comme quasi toute API ne génère jamais d'erreur mais retourne seulement un statut d'erreur BOOL.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Avec copyfile, le problème ne vient sans doute pas de l'extension mais du contenu du fichier...
Si tu veux faire du portable, ce n'est pas bien compliqué d'écrire ta propre routine de copie de fichier
Messages postés
76
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
3 juillet 2007

j'avoue que je comprend pas trop ce qu'il se passe tant qu'il n'y a que des fichiers txt tout se passe bien mais dés que l'extension est differente ca plante... je vous met mon petit bout de code dites moi ce que vs en pensez :

void MyCopyDirectoryRec(CString rep)
{
char NewFileName[]={"c:\\Zipper_Vtfw32\"};
WIN32_FIND_DATA FindFileData;
char path[MAX_PATH];
strcpy(path,rep);
strcat(path,"\\*.*");
HANDLE hFind = FindFirstFile(path, &FindFileData);
if (hFind==INVALID_HANDLE_VALUE)
return;
if (strcmp(FindFileData.cFileName,".")!=0 && strcmp(FindFileData.cFileName,"..")!=0)
{
strcpy(path,rep);
strcat(path,"\");
strcat(path,FindFileData.cFileName);
MyCopyDirectoryRec(path);
}
DWORD a = 0;
while (a != ERROR_NO_MORE_FILES)
{
if (!FindNextFile(hFind, &FindFileData))
a = GetLastError();
else
{
if (strcmp(FindFileData.cFileName,".")!=0 && strcmp(FindFileData.cFileName,"..")!=0)
{
/*strcpy(path,rep);
strcat(path,"\");
strcat(path,FindFileData.cFileName);
char NewFileName[]={"c:\\Zipper_Vtfw32\"};
strcat(NewFileName,FindFileData.cFileName);
if(!CopyFile(path,NewFileName,0))
bErr = GetLastError();*/
strcpy(FileNameDebug,rep);
strcat(FileNameDebug,"\");
strcat(FileNameDebug,FindFileData.cFileName);
char NewFileNameDebug[] ={"c:\\Zipper_Vtfw32\"};
strcat(NewFileNameDebug,FindFileData.cFileName);
CopyFile(FileNameDebug,NewFileNameDebug,0);
//if(!CopyFile(FileNameDebug,NewFileNameDebug,0))
// bErr = GetLastError();
}
}
}
FindClose(hFind);
}

merci encore :)
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
Bouhhh
if(strcmp(FindFileData.cFileName,".")!=0 && strcmp(FindFileData.cFileName,"..")!=0)

remplace par:
if(FindFileData.cFileName[0] != '.') PAS BESOIN DE PLUS

pas le temps d'analyser le reste.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
76
Date d'inscription
lundi 5 septembre 2005
Statut
Membre
Dernière intervention
3 juillet 2007

Merci j'ai corrige mais j'ai tjrs mon exception :'( le sort s'acharne mais je vaincrai !!! enfin j'espere mais si quelqu'un a une idee ca m'aiderai bien qd mm :)

++
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
Prends ce modèle:
TOUS FICHIERS D'UN DISQUE DUR (WIN32)
http://www.cppfrance.com/code.aspx?id=16638

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++