Bonjour à tous,
J'essaie de copier un fichier avec fopen(). J'ai donc utilisé le code source de la faq:
http://c.developpez.com/faq/?page=fi...ICHIERS_copier
Je l'ai un peu modifier pour que ça donne ceci:
Et je l'utilise comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 int CopyAFile(char const * const source, char const * const destination) { FILE* fSrc = NULL; FILE* fDest = NULL; char buffer[512]; int NbLu; if ((fSrc = fopen(source, "rb")) == NULL) { printf("Cannot open source file: %s\n", source); exit(1); } if ((fDest = fopen(destination, "wb")) == NULL) { printf("Cannot open dstination file: %s\n", destination); fclose(fSrc); exit(1); } while ((NbLu=fread(buffer, 1, 512, fSrc)) != 0) fwrite(buffer, 1, NbLu, fDest); fclose(fDest); fclose(fSrc); return 0; }
Printf me renvoie bien les bon chemins, sans les doubles antislash, mais la fonction CopyAFile echoue sur le premier fopen().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CHAR SourceFile[450+1] = "C:\\BETtest\\test.xml"; printf("\nSourceFile: %s\n", SourceFile); CHAR DestinationFile[450+1] = "C:\\BETest\\test\\test.xml"; printf("\nDestinationFile: %s\n\n", DestinationFile); CopyAFile(SourceFile, DestinationFile);
Il y a moyen de savoir pourquoi il ne peut pas ouvrir le fichier? Il existe bien, et il n'est pas verrouillé.
D'avance merci
Ps: Le but est de pouvoir par la suite copier un fichier à partir d'un snapshot, avec un chemin du genre \?\\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Documents and Settings\blabla\monfichierverrouillé
Apparemment, la fonction CopyFile() des lib Crosoft n'aime pas trop ce genre de path...
Partager