Com trobar la mida d'un fitxer a la programació C

Com Trobar La Mida D Un Fitxer A La Programacio C



Sou nou a la programació en C i busqueu una manera de trobar la mida d'un fitxer? No aneu a cap altre lloc! En aquesta guia, aprendràs el procés per trobar la mida d'un fitxer en programació C. El nombre de bytes utilitzats per contenir les dades dins d'un fitxer s'anomena mida del fitxer. Si coneixeu la mida del fitxer, podeu realitzar diverses operacions de gestió de fitxers, com ara copiar, llegir o escriure.

Mitjançant les directrius pas a pas esmentades en aquest tutorial i exemples de codi senzills, podeu trobar ràpidament la mida de qualsevol fitxer.







Trobeu la mida d'un fitxer a la programació C

Hi ha diferents maneres de trobar la mida d'un fitxer en C esmentat a continuació.



1: Ús de la funció stat().

En C, el mètode més senzill per esbrinar la mida d'un fitxer és utilitzar el estat() funció de trucada al sistema. El estat() La funció recupera la informació de l'estat del fitxer i l'emmagatzema en una estructura. Un dels membres d'aquesta estructura és st_mida , que dóna la mida del fitxer en bytes. Aquest mètode evita haver de moure manualment el punter del fitxer, cosa que fa que sigui més fàcil d'utilitzar i menys propens a errors.



#inclou
#include

int principal ( )
{
estructura estat st;
llarg mida ;
si ( estat ( 'C_File.txt' , & st ) == 0 )
{
mida = st.st_size;
imprimirf ( 'La mida del fitxer és de %ld bytes. \n ' , mida ) ;
}
tornar 0 ;
}


Aquest codi recupera la mida d'un fitxer anomenat C_Fitxer.txt utilitzant el estat() mètode des del biblioteca. El st_mida element de struct stat, en el qual la funció guarda la informació sobre el fitxer i ens permet trobar la mida del fitxer. La mida del fitxer es manté a la mida variable, i després printf() s'utilitza per imprimir la mida a la consola juntament amb un missatge. Abans d'intentar accedir a st_mida propietat, la declaració if verifica que el estat() la trucada de funció ha estat correcta. Aleshores, el codi torna 0 per mostrar que s'ha executat correctament.





Sortida


2: Ús de la funció fstat().

Una altra funció semblant a estat() és el fstat() funció, que és equivalent a estat() però funciona en un fitxer obert en lloc d'un nom de fitxer. El fstat() La funció recupera informació sobre el fitxer obert descrit per descriptor de fitxer va passar-hi. Una referència a un fitxer obert es representa amb l'enter descriptor de fitxer . De manera semblant a estat(), fstat() retorna la informació d'estat sobre el fitxer proporcionat, inclosa la seva mida en bytes.



#inclou
#include
#inclou

int principal ( ) {
int fd;
estructura estat st;
fd = obert ( 'C_File.txt' , O_RDONLY ) ;
si ( estat ( fd, & st ) == - 1 ) {
imprimirf ( 'S'ha produït un error en obtenir la informació del fitxer. \n ' ) ;
tornar 1 ;
}
imprimirf ( 'La mida del fitxer és de %ld bytes. \n ' , st.st_size ) ;
Tanca ( fd ) ;
tornar 0 ;
}


En el codi anterior, el fitxer s'obre inicialment en aquest exemple cridant el fitxer obert() funció amb el nom del fitxer i el O_RDONLY opció, que obre el fitxer en mode de només lectura. A descriptor de fitxer (fd) és retornat per la funció. Després d'això, fem servir el fstat() mètode per obtenir informació sobre el fitxer, enviant-lo com a punter al fitxer st estructura com a segon paràmetre i el descriptor de fitxer com a primer argument. El st estructura és on aquesta funció guarda la informació del fitxer després de recuperar-lo.

La mida del fitxer en bytes, que es conserva al fitxer st_mida membre de la st l'estructura, s'imprimeix després si no hi ha hagut cap error en utilitzar el fstat() funció. En cas contrari, imprimeix un missatge d'error.

Sortida


3: Ús de les funcions fseek() i ftell().

Un altre mètode per trobar la mida d'un fitxer a la programació C és utilitzar el fseek() i ftell() funcions. El ftell() El mètode retorna la posició actual del punter del fitxer, mentre que la funció fseek() mou el punter del fitxer a un lloc determinat del fitxer. La mida del fitxer en bytes es pot trobar mitjançant l' ftell() funció per adquirir la posició actual després d'utilitzar fseek() funció per reubicar el punter del fitxer al final del fitxer.

#inclou
#include

int principal ( )
{
DOSSIER * fp;
llarg mida ;

fp = fopen ( 'C_File.txt' , 'rb' ) ;
fseek ( fp, 0L, SEEK_END ) ;
mida = ftell ( fp ) ;
f tancar ( fp ) ;
imprimirf ( 'La mida del fitxer = %ld bytes. \n ' , mida ) ;

tornar 0 ;
}


Al codi anterior, utilitzant el fopen() mètode, l'aplicació obre primer C_Fitxer.txt en mode binari. El fseek() després utilitza la funció SEEK_END opció per reubicar el punter del fitxer al final del fitxer. La ubicació actual del fitxer, que correspon a la seva mida en bytes, es pot trobar amb l' ftell() funció. Aleshores, el codi utilitza el fclose() mètode per tancar el fitxer després d'imprimir la mida del fitxer a la consola.

Sortida


4: Ús de la funció filelength().

El següent mètode és utilitzar la biblioteca de gestió de fitxers, que proporciona moltes funcions de manipulació de fitxers, incloses les funcions per obtenir la mida d'un fitxer . Per exemple, la funció longitud de fitxer () retorna la longitud d'un fitxer en bytes, donat el seu nom de fitxer. Aquesta funció requereix el fitxer de capçalera .

També hi ha una altra funció, _filelengthi64(), que retorna la longitud d'un fitxer en bytes, per a fitxers de més de 4 GB. La diferència entre les dues funcions és el tipus dels seus valors de retorn, que mostra quants bytes pot gestionar la funció.

#inclou
#inclou

int principal ( )
{
llarg mida ;
char * fname = 'C_File.txt' ;
mida = longitud del fitxer ( fileno ( fopen ( fname, 'rb' ) ) ) ;
imprimirf ( 'La mida del fitxer = %ld bytes. \n ' , mida ) ;

tornar 0 ;
}


La mida del fitxer C_Fitxer.txt en bytes s'obté mitjançant aquest codi mitjançant la biblioteca de gestió de fitxers de Windows. Quan es proporciona el descriptor de fitxer d'un fitxer obert, el mètode longitud de fitxer () retorna la longitud del fitxer en bytes.

fopen() obre el fitxer en mode binari només de lectura en aquest codi i fileno() retorna el descriptor del fitxer obert. Llavors, printf() s'utilitza per imprimir la mida del fitxer. Aleshores, la funció retorna 0 que indica que s'ha executat correctament.

Sortida


Conclusió

Hi ha diversos mètodes per trobar el mida d'un fitxer en bytes en C , cadascun amb els seus avantatges i inconvenients. Quatre mètodes diferents es comenten al tutorial anterior; estat() funció, fstat() funció, fseek() i ftell() funcions, i el longitud de fitxer () funció. Entendre aquestes funcions ajudarà els usuaris a trobar la mida de qualsevol fitxer del vostre sistema.