Sådan finder du størrelsen på en fil i C-programmering

Sadan Finder Du Storrelsen Pa En Fil I C Programmering



Er du ny til C-programmering og leder efter en måde at finde størrelsen på en fil på? Gå ingen andre steder! I denne guide lærer du processen med at finde størrelsen på en fil i C-programmering. Antallet af bytes, der bruges til at opbevare dataene i en fil, kaldes filens størrelse. Ved at kende filstørrelsen kan du udføre forskellige filhåndteringshandlinger, herunder kopiering, læsning eller skrivning.

Gennem de trinvise retningslinjer nævnt i denne tutorial og enkle kodeeksempler kan du hurtigt finde størrelsen på enhver fil.







Find størrelsen på en fil i C-programmering

Der er forskellige måder at finde størrelsen på en fil i C nævnt nedenfor.



1: Bruger stat() funktion

I C er den mest ligetil metode til at finde ud af størrelsen på en fil at bruge stat() systemopkaldsfunktion. Det stat() funktionen henter filstatusoplysninger og gemmer dem i en struktur. Et af medlemmerne af denne struktur er st_størrelse , som angiver filens størrelse i bytes. Denne metode undgår at skulle flytte filmarkøren manuelt, hvilket gør den lettere at bruge og mindre udsat for fejl.



#include
#include

int main ( )
{
struktur stat st;
lang størrelse ;
hvis ( stat ( 'C_File.txt' , & st ) == 0 )
{
størrelse = st.st_size;
printf ( 'Størrelsen på filen er %ld bytes. \n ' , størrelse ) ;
}
Vend tilbage 0 ;
}


Denne kode henter størrelsen på en fil kaldet C_File.txt bruger stat() metode fra bibliotek. Det st_størrelse element i struct stat, hvor funktionen gemmer informationen om filen og giver os mulighed for at finde filstørrelsen. Størrelsen af ​​filen holdes i den variable størrelse, og derefter printf() bruges til at udskrive størrelsen til konsollen sammen med en besked. Før du forsøger at få adgang til st_størrelse egenskab, bekræfter if-erklæringen, at stat() funktionsopkald var vellykket. Koden returnerer derefter 0 for at vise, at den kørte med succes.





Produktion


2: Brug af fstat() funktion

En anden funktion, der ligner stat() er fstat() funktion, som svarer til stat() men virker på en åben fil i stedet for et filnavn. Det fstat() funktionen henter information om den åbne fil beskrevet af filbeskrivelse overgået til det. En reference til en åben fil er repræsenteret ved et helt tal filbeskrivelse . Ligesom stat(), fstat() returnerer statusoplysningerne om den angivne fil, inklusive dens størrelse i bytes.



#include
#include
#include

int main ( ) {
int fd;
struktur stat st;
fd = åben ( 'C_File.txt' , O_RDONLY ) ;
hvis ( stat ( fd, & st ) == - 1 ) {
printf ( 'Fejl ved hentning af filoplysninger. \n ' ) ;
Vend tilbage 1 ;
}
printf ( 'Størrelsen på filen er %ld bytes. \n ' , st.st_size ) ;
tæt ( fd ) ;
Vend tilbage 0 ;
}


I ovenstående kode åbnes filen først i dette eksempel ved at kalde åben() funktion med filnavnet og O_RDONLY mulighed, som åbner filen i skrivebeskyttet tilstand. EN filbeskrivelse (fd) returneres af funktionen. Derefter bruger vi fstat() metode til at få information om filen ved at sende den som en pegepind til st struktur som den anden parameter og filbeskrivelsen som det første argument. Det st struktur er det sted, hvor denne funktion opbevarer filens oplysninger efter at have hentet dem.

Størrelsen af ​​filen i bytes, som opbevares i st_størrelse medlem af st struktur, derefter udskrives, hvis der ikke var nogen fejl under brug af fstat() fungere. Ellers udskriver den en fejlmeddelelse.

Produktion


3: Brug af funktionerne fseek() og ftell().

En anden metode til at finde størrelsen på en fil i C-programmering er at bruge fseek() og ftell() funktioner. Det ftell() metoden returnerer den aktuelle position af filmarkøren, hvorimod fseek()-funktionen flytter filmarkøren til et givet sted i filen. Filens størrelse i bytes kan findes ved at bruge ftell() funktion for at opnå den aktuelle position efter brug af fseek() funktion til at flytte filmarkøren til slutningen af ​​filen.

#include
#include

int main ( )
{
FIL * fp;
lang størrelse ;

fp = fopen ( 'C_File.txt' , 'rb' ) ;
fseek ( fp, 0L, SEEK_END ) ;
størrelse = ftell ( fp ) ;
fluk ( fp ) ;
printf ( 'Størrelsen på filen = %ld bytes. \n ' , størrelse ) ;

Vend tilbage 0 ;
}


I ovenstående kode skal du bruge fopen() metode, åbner applikationen først C_File.txt i binær tilstand. Det fseek() funktionen bruger derefter SEEK_END mulighed for at flytte filmarkøren til filens ende. Filens aktuelle placering, som svarer til dens størrelse i bytes, kan derefter findes ved hjælp af ftell() fungere. Koden bruger derefter fclose() metode til at lukke filen efter udskrivning af filens størrelse til konsollen.

Produktion


4: Brug af filelength() funktion

Den næste metode er ved at bruge filhåndteringsbiblioteket, som giver mange filmanipulationsfunktioner, herunder funktioner til at få størrelsen af ​​en fil . For eksempel funktionen fillængde() returnerer længden af ​​en fil i bytes, givet dens filnavn. Denne funktion kræver header-filen .

Der er også en anden funktion, _filelengthhi64(), der returnerer længden af ​​en fil i bytes for filer større end 4 GB. Forskellen mellem de to funktioner er typen af ​​deres returværdier, som viser hvor mange bytes funktionen kan håndtere.

#include
#include

int main ( )
{
lang størrelse ;
char * fnavn = 'C_File.txt' ;
størrelse = fillængde ( filnr ( fopen ( fnavn, 'rb' ) ) ) ;
printf ( 'Størrelsen på filen = %ld bytes. \n ' , størrelse ) ;

Vend tilbage 0 ;
}


Størrelsen på filen C_File.txt i bytes opnås af denne kode ved hjælp af Windows filhåndteringsbibliotek. Når der gives filbeskrivelsen for en åbnet fil, metoden fillængde() returnerer længden af ​​filen i bytes.

fopen() åbner filen i skrivebeskyttet binær tilstand i denne kode, og filno() returnerer filbeskrivelsen for den åbnede fil. Derefter, printf() bruges til at udskrive filstørrelsen. Funktionen returnerer derefter 0, hvilket indikerer, at den er blevet udført.

Produktion


Konklusion

Der er flere metoder til at finde størrelsen af ​​en fil i bytes i C , hver med sine egne fordele og ulemper. Fire forskellige metoder diskuteres i vejledningen ovenfor; stat() fungere, fstat() fungere, fseek() og ftell() funktioner, og fillængde() fungere. Forståelse af disse funktioner vil hjælpe brugerne med at finde størrelsen af ​​enhver fil på dit system.