Vidéo: Langage C #16 - fichiers 2025
Ah, copier un fichier - quelque chose d'aussi simple, ça arrive tout le temps. Copiez ce fichier là-bas; Copiez ce fichier ici. Mais que se passe-t-il exactement lorsque vous copiez un fichier? Vous créez réellement un fichier nouveau et le remplissez avec le même contenu que le fichier original. Et comment faites-vous cela?
Eh bien, il semble que vous deviez lire chaque octet du premier fichier, et l'écrire à la seconde. Baiser à plein temps.
Mais pour ne rien arranger, copier un fichier signifie que vous devez vous assurer que vous le copiez exactement de la même manière, que vous n'accumulez pas accidentellement un 0 ou deux supplémentaire à la fin du fichier, ou un retour chariot ou un saut de ligne supplémentaire à la fin du fichier (ce qui peut arriver lorsque vous copiez un fichier texte).
Quand tout est fait, les deux fichiers doivent être identiques - non seulement contenir les mêmes informations , mais aussi la même taille .
Et pour couronner le tout, la plupart des bonnes routines de copie font encore plus! Ils attribuent au nouveau fichier une date correspondant à la date du fichier d'origine et définissent tous les attributs, y compris, disons, en lecture seule si l'original est un fichier en lecture seule. (Si le fichier est en lecture seule, alors peut-être que vous ne devriez pas pouvoir le copier en premier lieu …)
Copier soudainement un fichier ne sonne pas si facile après tout!
Si vous programmez sous Windows, vous avez de la chance! Tant que vous n'utilisez pas l'ancien Windows 3. 1, vous obtenez une fonction CopyFile! Pour vous préparer à l'utiliser, vous incluez la ligne #include dans votre application. Alors voici tout ce que vous avez à faire:
CopyFile ("c: / dog.txt", "c: / dog2.txt", TRUE);
Cette copie provient de c: / dog. txt à c: / dog2. SMS. Mais remarquez le dernier paramètre: C'est le mot VRAI dans toutes les capitales. Qu'est-ce que c'est? C'est une macro de préprocesseur définie quelque part dans les entrailles des fichiers d'en-tête de Windows.
Vous devez utiliser TRUE ou FALSE lorsque vous appelez l'une des fonctions de Windows. C'est parce que dans les vieux jours de C, lorsque les premières versions de Windows ont été inventées, aucun type de bool n'existe. Ces personnes ingénieuses de la fin du 20ème siècle ont dû définir leurs propres VRAI et FAUX comme des entiers (habituellement 1 et 0, respectivement, ou 0 et 1, respectivement).
Et en passant, ce dernier paramètre dans CopyFile dit à la fonction ce qu'il faut faire si le fichier que vous copiez existe déjà: TRUE signifie ne pas écraser le fichier existant; juste annuler. FALSE signifie l'écraser.