Hvordan finne størrelsen på en fil i C-programmering

Hvordan Finne Storrelsen Pa En Fil I C Programmering



Er du ny til C-programmering og søker etter en måte å finne størrelsen på en fil? Gå ingen andre steder! I denne guiden lærer du prosessen med å finne størrelsen på en fil i C-programmering. Antall byte som brukes til å holde dataene inne i en fil, refereres til som filens størrelse. Ved å vite filstørrelsen kan du utføre ulike filhåndteringsoperasjoner, inkludert kopiering, lesing eller skriving.

Gjennom trinn-for-trinn-retningslinjene nevnt i denne opplæringen og enkle kodeeksempler, kan du raskt finne størrelsen på enhver fil.







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

Det er forskjellige måter å finne størrelsen på en fil i C nevnt nedenfor.



1: Bruke stat()-funksjonen

I C er den enkleste metoden for å finne ut størrelsen på en fil å bruke stat() systemanropsfunksjon. De stat() funksjonen henter filstatusinformasjon og lagrer den i en struktur. Et av medlemmene i denne strukturen er st_size , som gir størrelsen på filen i byte. Denne metoden unngår å måtte flytte filpekeren manuelt, noe som gjør den enklere å bruke og mindre utsatt for feil.



#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 byte. \n ' , størrelse ) ;
}
komme tilbake 0 ;
}


Denne koden henter størrelsen på en fil kalt C_File.txt bruker stat() metode fra bibliotek. De st_size element i struct stat, der funksjonen holder informasjonen om filen, og lar oss finne filstørrelsen. Størrelsen på filen beholdes i variabel størrelse, og deretter printf() brukes til å skrive ut størrelsen til konsollen sammen med en melding. Før du prøver å få tilgang til st_size egenskapen, bekrefter if-setningen at stat() funksjonsanrop var vellykket. Koden returnerer deretter 0 for å vise at den kjørte.





Produksjon


2: Bruke fstat()-funksjonen

En annen funksjon som ligner på stat() er den fstat() funksjon, som tilsvarer stat() men fungerer på en åpen fil i stedet for et filnavn. De fstat() funksjonen henter informasjon om den åpne filen beskrevet av filbeskrivelse gikk over til det. En referanse til en åpen fil er representert med heltall filbeskrivelse . På samme måte som stat(), fstat() returnerer statusinformasjonen om filen som er oppgitt, inkludert størrelsen i byte.



#include
#include
#include

int main ( ) {
int fd;
struktur stat st;
fd = åpen ( 'C_File.txt' , O_RDONLY ) ;
hvis ( fstat ( fd, & st ) == - 1 ) {
printf ( 'Feil ved henting av filinformasjon. \n ' ) ;
komme tilbake 1 ;
}
printf ( 'Størrelsen på filen er %ld byte. \n ' , st.st_size ) ;
Lukk ( fd ) ;
komme tilbake 0 ;
}


I koden ovenfor åpnes filen først i dette eksemplet ved å ringe åpen() funksjon med filnavnet og O_RDONLY alternativet, som åpner filen i skrivebeskyttet modus. EN filbeskrivelse (fd) returneres av funksjonen. Etter det bruker vi fstat() metode for å få informasjon om filen ved å sende den som en peker til st struktur som den andre parameteren og filbeskrivelsen som det første argumentet. De st struktur er der denne funksjonen lagrer filens informasjon etter å ha hentet den.

Størrelsen på filen i byte, som holdes i st_size medlem av st struktur, skrives så ut hvis det ikke var noen feil under bruk av fstat() funksjon. Ellers skriver den ut en feilmelding.

Produksjon


3: Bruke funksjonene fseek() og ftell().

En annen metode for å finne størrelsen på en fil i C-programmering er å bruke fseek() og ftell() funksjoner. De ftell() metoden returnerer gjeldende posisjon til filpekeren, mens fseek()-funksjonen flytter filpekeren til et gitt sted i filen. Filens størrelse i byte kan bli funnet ved å bruke ftell() funksjon for å hente gjeldende posisjon etter bruk av fseek() funksjon for å flytte filpekeren til slutten av 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 ) ;
flukk ( fp ) ;
printf ( 'Størrelsen på filen = %ld bytes. \n ' , størrelse ) ;

komme tilbake 0 ;
}


I koden ovenfor bruker du fopen() metoden åpner applikasjonen først C_File.txt i binær modus. De fseek() funksjonen bruker deretter SEEK_END alternativet for å flytte filpekeren til filens ende. Filens nåværende plassering, som tilsvarer størrelsen i byte, kan deretter bli funnet ved å bruke ftell() funksjon. Koden bruker deretter fclose() metode for å lukke filen etter å ha skrevet ut filens størrelse til konsollen.

Produksjon


4: Bruke filelength()-funksjonen

Den neste metoden er å bruke filbehandlingsbiblioteket, som gir mange filmanipuleringsfunksjoner, inkludert funksjoner for å få størrelsen på en fil . For eksempel funksjonen filelength() returnerer lengden på en fil i byte, gitt filnavnet. Denne funksjonen krever overskriftsfilen .

Det er også en annen funksjon, _filelengthhi64(), som returnerer lengden på en fil i byte, for filer større enn 4 GB. Forskjellen mellom de to funksjonene er typen returverdier, som viser hvor mange byte funksjonen kan håndtere.

#include
#include

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

komme tilbake 0 ;
}


Størrelsen på filen C_File.txt i byte hentes av denne koden ved å bruke Windows filbehandlingsbibliotek. Når gitt filbeskrivelsen for en åpnet fil, metoden filelength() returnerer lengden på filen i byte.

fopen() åpner filen i skrivebeskyttet binær modus i denne koden, og fileno() returnerer filbeskrivelsen til den åpnede filen. Deretter, printf() brukes til å skrive ut filstørrelsen. Funksjonen returnerer da 0 som indikerer at den er vellykket utført.

Produksjon


Konklusjon

Det er flere metoder for å finne størrelsen på en fil i byte i C , hver med sine egne fordeler og ulemper. Fire ulike metoder er omtalt i veiledningen ovenfor; stat() funksjon, fstat() funksjon, fseek() og ftell() funksjoner, og filelength() funksjon. Å forstå disse funksjonene vil hjelpe brukere med å finne størrelsen på en fil på systemet ditt.