CopyFile vs mon_code

abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 - 9 juin 2005 à 11:19
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 9 juin 2005 à 13:45
Voici mon code je voudrai savoir si je n'ai poa fait d'erreur !!
Avec ce code on peut constater que le CopyFile est plus lent. Cependant j'ai peur que cela crée un truc du genre buffer owerflow, kan pensez vs ??

#include <windows.h>
#include <stdio.h>


int main(int argc, char *argv[])
{
SYSTEMTIME DateTime;
GetLocalTime(&DateTime);
printf("%i:%i:%i\n",DateTime.wHour,DateTime.wMinute,DateTime.wSecond);

HANDLE hFileR = CreateFile("C:\\VisualStudio6Full.exe",GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,0,0);
HANDLE hFileW = CreateFile("C:\\U2.EXE",GENERIC_WRITE,FILE_SHARE_WRITE,0,OPEN_ALWAYS,0,0);

//hFile = CreateFile("c:\\test.txt",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hFileR == INVALID_HANDLE_VALUE)
return 1;
if (hFileW == INVALID_HANDLE_VALUE)
return 1;
DWORD dwSize;
dwSize = GetFileSize (hFileR, NULL);
//dwSize = 8096;


if (dwSize == INVALID_FILE_SIZE)
return 1;
char *buffer = new char[dwSize+1];
DWORD bLu;
ReadFile(hFileR,buffer,dwSize,&bLu,NULL);
WriteFile(hFileW, buffer, dwSize, &bLu, NULL);

CloseHandle(hFileR);
CloseHandle(hFileW);


GetLocalTime(&DateTime);
printf("%i:%i:%i\n",DateTime.wHour,DateTime.wMinute,DateTime.wSecond);



CopyFile("C:\\VisualStudio6Full.exe", "C:\\U3.EXE", 0);

GetLocalTime(&DateTime);
printf("%i:%i:%i\n",DateTime.wHour,DateTime.wMinute,DateTime.wSecond);


system("PAUSE");
return 0;
}

Have Fun ...

3 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juin 2005 à 11:45
C'est dangereux d'allouer autant d'un coup, pense aux très gros fichiers!

Lis par blocs de la taille de ton choix, et fais une boucle la dessus
0
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
9 juin 2005 à 12:09
Ouaip c ce que je pensé, ms le truc c'est que j'ai teste avec des fichier de 250MO et ça ne bug poa ms après c claire que c'est dangereux !!
A mon avis faudra que je me penche sur une boucle qui cependant plus lente !!

Have Fun ...
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juin 2005 à 13:45
La différence de temps devrait être difficile à percevoir, sauf si bien sur tu prends un tout petit bloc
0
Rejoignez-nous