Comment trouver la taille d'un fichier en programmation C

Comment Trouver La Taille D Un Fichier En Programmation C



Êtes-vous nouveau dans la programmation C et cherchez-vous un moyen de trouver la taille d'un fichier ? N'allez nulle part ailleurs ! Dans ce guide, vous apprendrez le processus de recherche de la taille d'un fichier en programmation C. Le nombre d'octets utilisés pour contenir les données dans un fichier est appelé la taille du fichier. En connaissant la taille du fichier, vous pouvez effectuer diverses opérations de gestion de fichiers, notamment la copie, la lecture ou l'écriture.

Grâce aux instructions détaillées mentionnées dans ce didacticiel et à des exemples de code simples, vous pouvez rapidement trouver la taille de n'importe quel fichier.







Trouver la taille d'un fichier en programmation C

Il existe différentes façons de trouver la taille d'un fichier en C mentionné ci-dessous.



1 : Utilisation de la fonction stat()

En C, la méthode la plus simple pour connaître la taille d'un fichier consiste à utiliser la stat() fonction d'appel système. Le stat() La fonction récupère les informations d'état du fichier et les stocke dans une structure. L'un des membres de cette structure est st_size , qui donne la taille du fichier en octets. Cette méthode évite d'avoir à déplacer manuellement le pointeur de fichier, ce qui le rend plus facile à utiliser et moins sujet aux erreurs.



#include
#include

int main ( )
{
structure statistique St;
long taille ;
si ( statistique ( 'C_File.txt' , & St ) == 0 )
{
taille = st.st_size ;
printf ( 'La taille du fichier est %ld octets. \n ' , taille ) ;
}
retour 0 ;
}


Ce code récupère la taille d'un fichier appelé C_File.txt en utilisant le stat() méthode de la bibliothèque. Le st_size élément de la struct stat, dans lequel la fonction conserve les informations sur le fichier, et nous permet de trouver la taille du fichier. La taille du fichier est conservée dans la variable taille, puis printf() est utilisé pour imprimer la taille sur la console avec un message. Avant de tenter d'accéder au st_size propriété, l'instruction if vérifie que la stat() l'appel de la fonction a réussi. Le code renvoie ensuite 0 pour montrer qu'il s'est exécuté avec succès.





Sortir


2 : Utilisation de la fonction fstat()

Une autre fonction similaire à stat() est le fstat() fonction, ce qui équivaut à stat() mais fonctionne sur un fichier ouvert au lieu d'un nom de fichier. Le fstat() fonction récupère des informations sur le fichier ouvert décrit par le descripteur de fichier y est passé. Une référence à un fichier ouvert est représentée par l'entier descripteur de fichier . Similaire à stat(), fstat() renvoie les informations d'état sur le fichier fourni, y compris sa taille en octets.



#include
#include
#include

int main ( ) {
int fd ;
structure statistique St;
fd = ouvert ( 'C_File.txt' , O_RDEULEMENT ) ;
si ( État ( fd, & St ) == - 1 ) {
printf ( 'Erreur lors de l'obtention des informations sur le fichier. \n ' ) ;
retour 1 ;
}
printf ( 'La taille du fichier est %ld octets. \n ' , st.st_size ) ;
fermer ( fd ) ;
retour 0 ;
}


Dans le code ci-dessus, le fichier est initialement ouvert dans cet exemple en appelant le ouvrir() fonction avec le nom de fichier et le O_RDONLY option, qui ouvre le fichier en mode lecture seule. UN descripteur de fichier (fd) est renvoyé par la fonction. Après cela, nous utilisons le fstat() méthode pour obtenir des informations sur le fichier, en l'envoyant comme un pointeur vers le St structure comme deuxième paramètre et le descripteur de fichier comme premier argument. Le St structure est l'endroit où cette fonction conserve les informations du fichier après l'avoir récupéré.

La taille du fichier en octets, qui est conservée dans le st_size membre de la St structure, est alors imprimé s'il n'y a pas eu d'erreur lors de l'utilisation de la fstat() fonction. Sinon, il imprime un message d'erreur.

Sortir


3 : Utilisation des fonctions fseek() et ftell()

Une autre méthode pour trouver la taille d'un fichier en programmation C consiste à utiliser le fcherche() et ftell() les fonctions. Le ftell() renvoie la position actuelle du pointeur de fichier, tandis que la fonction fseek() déplace le pointeur de fichier à un endroit donné du fichier. La taille du fichier en octets peut être trouvée en utilisant le ftell() fonction pour acquérir la position actuelle après avoir utilisé le fcherche() fonction pour déplacer le pointeur de fichier à la fin du fichier.

#include
#include

int main ( )
{
DÉPOSER * fp ;
long taille ;

fp = fopen ( 'C_File.txt' , 'rb' ) ;
chercher ( fp, 0L, SEEK_END ) ;
taille = dire ( fp ) ;
fermer ( fp ) ;
printf ( 'La taille du fichier = %ld octets. \n ' , taille ) ;

retour 0 ;
}


Dans le code ci-dessus, en utilisant le fopen() méthode, l'application ouvre d'abord la C_File.txt en mode binaire. Le fcherche() la fonction utilise alors le SEEK_END option pour déplacer le pointeur de fichier à la fin du fichier. L'emplacement courant du fichier, qui correspond à sa taille en octets, peut alors être trouvé à l'aide de la ftell() fonction. Le code utilise alors le fermer() méthode pour fermer le fichier après avoir imprimé la taille du fichier sur la console.

Sortir


4 : Utilisation de la fonction filelength()

La méthode suivante consiste à utiliser la bibliothèque de gestion de fichiers, qui fournit de nombreuses fonctions de manipulation de fichiers, y compris des fonctions pour obtenir la taille d'un fichier . Par exemple, la fonction longueur de fichier() renvoie la longueur d'un fichier en octets, compte tenu de son nom de fichier. Cette fonction nécessite le fichier d'en-tête .

Il y a aussi une autre fonction, _filelengthi64(), qui renvoie la longueur d'un fichier en octets, pour les fichiers supérieurs à 4 Go. La différence entre les deux fonctions est le type de leurs valeurs de retour, qui indique le nombre d'octets que la fonction peut gérer.

#include
#include

int main ( )
{
long taille ;
carboniser * fname = 'C_File.txt' ;
taille = longueur du fichier ( fileno ( ouvrir ( nom de famille, 'rb' ) ) ) ;
printf ( 'La taille du fichier = %ld octets. \n ' , taille ) ;

retour 0 ;
}


La taille du fichier C_File.txt en octets est obtenu par ce code à l'aide de la bibliothèque de gestion de fichiers Windows. Lorsqu'il est fourni le descripteur de fichier d'un fichier ouvert, la méthode longueur de fichier() renvoie la longueur du fichier en octets.

fopen() ouvre le fichier en mode binaire en lecture seule dans ce code, et fileno() renvoie le descripteur de fichier du fichier ouvert. Alors, printf() est utilisé pour imprimer la taille du fichier. La fonction renvoie alors 0 qui indique qu'elle a été exécutée avec succès.

Sortir


Conclusion

Il existe plusieurs méthodes pour trouver le taille d'un fichier en octets en C , chacun avec ses avantages et ses inconvénients. Quatre méthodes différentes sont décrites dans le didacticiel ci-dessus ; stat() fonction, fstat() fonction, fcherche() et ftell() fonctions, et les longueur de fichier() fonction. La compréhension de ces fonctions aidera les utilisateurs à trouver la taille de n'importe quel fichier sur votre système.