Kako pronaći veličinu datoteke u C programiranju

Kako Pronaci Velicinu Datoteke U C Programiranju



Jeste li novi u C programiranju i tražite način da pronađete veličinu datoteke? Idi nigdje drugdje! U ovom vodiču naučit ćete postupak pronalaženja veličine datoteke u C programiranju. Broj bajtova koji se koristi za držanje podataka unutar datoteke naziva se veličina datoteke. Poznavajući veličinu datoteke, možete izvoditi različite operacije rukovanja datotekama, uključujući kopiranje, čitanje ili pisanje.

Pomoću detaljnih smjernica navedenih u ovom vodiču i jednostavnih primjera koda možete brzo pronaći veličinu bilo koje datoteke.







Pronađite veličinu datoteke u C programiranju

Postoje različiti načini za pronalaženje veličine datoteke u C-u navedeni u nastavku.



1: Korištenje funkcije stat().

U C-u, najjednostavnija metoda za određivanje veličine datoteke je korištenje stat() funkcija poziva sustava. The stat() funkcija dohvaća informacije o statusu datoteke i pohranjuje ih u strukturu. Jedan od članova ove strukture je st_veličina , što daje veličinu datoteke u bajtovima. Ovom metodom izbjegava se ručno pomicanje pokazivača datoteke, što je čini lakšom za korištenje i manje je sklona pogreškama.



#include
#include

int glavni ( )
{
strukturirati stat st;
dugo veličina ;
ako ( stat ( 'C_Datoteka.txt' , i sv ) == 0 )
{
veličina = st.st_veličina;
printf ( 'Veličina datoteke je %ld bajtova. \n ' , veličina ) ;
}
povratak 0 ;
}


Ovaj kod dohvaća veličinu datoteke koja se zove C_Datoteka.txt koristiti stat() metoda iz knjižnica. The st_veličina element struct stat, u kojem funkcija čuva podatke o datoteci i omogućuje nam da pronađemo veličinu datoteke. Veličina datoteke čuva se u varijabli size, a zatim printf() koristi se za ispis veličine na konzolu zajedno s porukom. Prije pokušaja pristupa st_veličina svojstvo, naredba if potvrđuje da je stat() poziv funkcije je bio uspješan. Kod zatim vraća 0 da pokaže da je uspješno pokrenut.





Izlaz


2: Korištenje funkcije fstat().

Još jedna funkcija slična stat() je fstat() funkcija, što je ekvivalentno stat() ali radi na otvorenoj datoteci umjesto na nazivu datoteke. The fstat() funkcija dohvaća informacije o otvorenoj datoteci koju opisuje deskriptor datoteke prešao na to. Referenca na otvorenu datoteku predstavljena je cijelim brojem deskriptor datoteke . Slično kao stat(), fstat() vraća informacije o statusu dostavljene datoteke, uključujući njezinu veličinu u bajtovima.



#include
#include
#include

int glavni ( ) {
int fd;
strukturirati stat st;
fd = otvoreno ( 'C_Datoteka.txt' , SAMO O_RD ) ;
ako ( država ( F D, i sv ) == - 1 ) {
printf ( 'Pogreška pri dobivanju informacija o datoteci. \n ' ) ;
povratak 1 ;
}
printf ( 'Veličina datoteke je %ld bajtova. \n ' , st.st_vel ) ;
Zatvoriti ( F D ) ;
povratak 0 ;
}


U gornjem kodu, datoteka se inicijalno otvara u ovom primjeru pozivom otvoren() funkcija s nazivom datoteke i SAMO O_RD opcija, koja otvara datoteku u načinu rada samo za čitanje. A deskriptor datoteke (fd) vraća funkcija. Nakon toga koristimo fstat() metoda za dobivanje informacija o datoteci, šaljući je kao pokazivač na sv struktura kao drugi parametar i deskriptor datoteke kao prvi argument. The sv struktura je mjesto gdje ova funkcija čuva informacije o datoteci nakon što je dohvati.

Veličina datoteke u bajtovima, koja se čuva u st_veličina član sv struktura, zatim se ispisuje ako nije bilo pogreške tijekom korištenja fstat() funkcija. U suprotnom ispisuje poruku o pogrešci.

Izlaz


3: Korištenje funkcija fseek() i ftell().

Još jedna metoda za pronalaženje veličine datoteke u C programiranju je korištenje fseek() i ftell() funkcije. The ftell() metoda vraća trenutni položaj pokazivača datoteke, dok funkcija fseek() pomiče pokazivač datoteke na određeno mjesto u datoteci. Veličina datoteke u bajtovima može se pronaći pomoću ftell() funkcija za dobivanje trenutne pozicije nakon korištenja fseek() funkcija za premještanje pokazivača datoteke na kraj datoteke.

#include
#include

int glavni ( )
{
DATOTEKA * fp;
dugo veličina ;

fp = fopen ( 'C_Datoteka.txt' , 'rb' ) ;
fseek ( fp, 0L, SEEK_END ) ;
veličina = reći ( fp ) ;
fclose ( fp ) ;
printf ( 'Veličina datoteke = %ld bajtova. \n ' , veličina ) ;

povratak 0 ;
}


U gornjem kodu, koristeći fopen() metoda, aplikacija prvo otvara C_Datoteka.txt u binarnom načinu rada. The fseek() funkcija tada koristi SEEK_END mogućnost premještanja pokazivača datoteke na kraj datoteke. Trenutačna lokacija datoteke, koja odgovara njezinoj veličini u bajtovima, tada se može pronaći pomoću ftell() funkcija. Kod zatim koristi fclose() metoda za zatvaranje datoteke nakon ispisa veličine datoteke na konzolu.

Izlaz


4: Korištenje funkcije filelength().

Sljedeća metoda je korištenje biblioteke za upravljanje datotekama, koja pruža mnoge funkcije za upravljanje datotekama, uključujući funkcije za dobivanje veličina datoteke . Na primjer, funkcija duljina datoteke() vraća duljinu datoteke u bajtovima, s obzirom na naziv datoteke. Ova funkcija zahtijeva datoteku zaglavlja .

Postoji još jedna funkcija, _duljina datoteke64(), koji vraća duljinu datoteke u bajtovima, za datoteke veće od 4 GB. Razlika između dvije funkcije je vrsta njihovih povratnih vrijednosti, što pokazuje koliko bajtova funkcija može obraditi.

#include
#uključi

int glavni ( )
{
dugo veličina ;
char * fname = 'C_Datoteka.txt' ;
veličina = duljina datoteke ( fileno ( fopen ( fname, 'rb' ) ) ) ;
printf ( 'Veličina datoteke = %ld bajtova. \n ' , veličina ) ;

povratak 0 ;
}


Veličina datoteke C_Datoteka.txt u bajtovima dobiva se ovim kodom korištenjem Windows biblioteke za upravljanje datotekama. Kada se pruži deskriptor datoteke otvorene datoteke, metoda duljina datoteke() vraća duljinu datoteke u bajtovima.

fopen() otvara datoteku u binarnom načinu rada samo za čitanje u ovom kodu i fileno() vraća deskriptor datoteke otvorene datoteke. Zatim, printf() koristi se za ispis veličine datoteke. Funkcija tada vraća 0 što označava da je uspješno izvršena.

Izlaz


Zaključak

Postoji nekoliko metoda za pronalaženje veličina datoteke u bajtovima u C , svaki sa svojim prednostima i manama. Četiri različite metode razmatrane su u gornjem vodiču; stat() funkcija, fstat() funkcija, fseek() i ftell() funkcije, i duljina datoteke() funkcija. Razumijevanje ovih funkcija pomoći će korisnicima da pronađu veličinu bilo koje datoteke na vašem sustavu.