Copier des fichiers

lamoueste Messages postés 76 Date d'inscription lundi 5 septembre 2005 Statut Membre Dernière intervention 3 juillet 2007 - 2 nov. 2005 à 11:41
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 2 nov. 2005 à 16:38
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 nov. 2005 à 12:21
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++
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
2 nov. 2005 à 12:59
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
0
lamoueste Messages postés 76 Date d'inscription lundi 5 septembre 2005 Statut Membre Dernière intervention 3 juillet 2007
2 nov. 2005 à 15:44
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 :)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 nov. 2005 à 16:11
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++
0

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

Posez votre question
lamoueste Messages postés 76 Date d'inscription lundi 5 septembre 2005 Statut Membre Dernière intervention 3 juillet 2007
2 nov. 2005 à 16:27
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 :)

++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 nov. 2005 à 16:38
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++
0
Rejoignez-nous