Bonjour !

J'ai créé un petit programme permettant de copier un fichier source vers un fichier destination .
J'avais un petit problème, parce qu'il me rajoutait un caractère en plus à la fin dans le fichier de destination et c'est pour cela que je compte les caractères et arrête d'écrire dans le fichier de destination à i-1 .
Bon, ça c'est pas trop grave, si vous savez pourquoi ça ajoute un caractère en plus, merci de me le dire !

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    FILE* fichierSource = NULL;
    FILE* fichierDest = NULL;
    long caractereActuel1 = 0;
    long caractereActuel2 = 0;
    long i = 0;
    long j = 0;
 
    fichierSource = fopen("source.txt", "rb");
 
    if (fichierSource == NULL)
    {
        printf("Il y a une erreur, le fichier source ne doit pas exister\n\n");
        system("PAUSE");	
        return 0;
    }
 
     // on compte le nombre de caracteres 
 
     while (caractereActuel1 != EOF)
        {  
           caractereActuel1 = fgetc(fichierSource);
           i++;
           }
 
 
    fichierDest = fopen("dest.txt", "wb");
    rewind(fichierSource);
 
 
    for ( j=0 ; j < (i-1) ; j++)
        {
            caractereActuel2 = fgetc(fichierSource); // On lit le caractère
            fputc(caractereActuel2, fichierDest); // On l'écrit dans le fichier de destination
        } 
 
 
    fclose(fichierSource);
    fclose(fichierDest);
 
 
  system("PAUSE");	
  return 0;
}


Enfaite, maintenant j'aimerai ( si c'est possible, bien évidemment ... ) copier tout un dossier et non plus qu'un fichier .
Mais je ne vois vraiment pas comment faire .
Merci de me mettre sur la voie s'il y a une possibilité .
Sinon, je tourne sous XP et j'ai pas besoin d'utiliser le programme sur un autre OS .

Bonne journée à tous !


diabgolo