Kā atrast faila lielumu programmā C

Ka Atrast Faila Lielumu Programma C



Vai esat jauns C programmēšanas lietotājs un meklējat veidu, kā atrast faila lielumu? Neejiet nekur citur! Šajā rokasgrāmatā jūs uzzināsit, kā atrast faila lielumu C programmēšanas procesā. Datu glabāšanai failā izmantoto baitu skaitu sauc par faila lielumu. Zinot faila lielumu, varat veikt dažādas failu apstrādes darbības, tostarp kopēšanu, lasīšanu vai rakstīšanu.

Izmantojot šajā apmācībā minētās pakāpeniskās vadlīnijas un vienkāršus kodu piemērus, varat ātri atrast jebkura faila lielumu.







Atrodiet faila lielumu programmā C programmēšana

Tālāk ir minēti dažādi veidi, kā atrast faila lielumu programmā C.



1: izmantojot stat() funkciju

Programmā C visvienkāršākā metode faila lieluma noteikšanai ir izmantot stat() sistēmas izsaukuma funkcija. The stat() funkcija izgūst faila statusa informāciju un saglabā to struktūrā. Viens no šīs struktūras dalībniekiem ir st_size , kas norāda faila lielumu baitos. Šī metode ļauj izvairīties no nepieciešamības manuāli pārvietot faila rādītāju, padarot to vieglāk lietojamu un mazāk kļūdu.



#include
#include

int galvenais ( )
{
struktūra stat st;
garš Izmērs ;
ja ( stat ( 'C_File.txt' , & st ) == 0 )
{
Izmērs = st.st_size;
printf ( 'Faila lielums ir %ld baiti. \n ' , Izmērs ) ;
}
atgriezties 0 ;
}


Šis kods izgūst izsauktā faila lielumu C_File.txt izmantojot stat() metode no bibliotēka. The st_size struct stat elements, kurā funkcija saglabā informāciju par failu un ļauj mums atrast faila lielumu. Faila lielums tiek saglabāts mainīgā lielumā, un pēc tam printf() tiek izmantots, lai drukātu izmēru konsolē kopā ar ziņojumu. Pirms mēģināt piekļūt st_size īpašumu, ja paziņojums apstiprina, ka stat() funkcijas izsaukums bija veiksmīgs. Pēc tam kods atgriež 0, lai parādītu, ka tas darbojās veiksmīgi.





Izvade


2: Fstat() funkcijas izmantošana

Vēl viena līdzīga funkcija stat() ir fstat() funkcija, kas ir līdzvērtīga stat() bet darbojas ar atvērtu failu, nevis faila nosaukumu. The fstat() funkcija izgūst informāciju par atvērto failu, ko apraksta faila deskriptors nodots tai. Atsauce uz atvērtu failu tiek attēlota ar veselu skaitli faila deskriptors . Līdzīgi kā stat(), fstat() atgriež statusa informāciju par sniegto failu, tostarp tā lielumu baitos.



#include
#include
#include

int galvenais ( ) {
int fd;
struktūra stat st;
fd = atvērts ( 'C_File.txt' , O_RDONLY ) ;
ja ( Valsts ( fd, & st ) == - 1 ) {
printf ( 'Kļūda, iegūstot faila informāciju. \n ' ) ;
atgriezties 1 ;
}
printf ( 'Faila lielums ir %ld baiti. \n ' , st.st_size ) ;
aizveriet ( fd ) ;
atgriezties 0 ;
}


Iepriekš minētajā kodā fails sākotnēji tiek atvērts šajā piemērā, izsaucot atvērt () funkcija ar faila nosaukumu un O_RDONLY opciju, kas atver failu tikai lasīšanas režīmā. A faila deskriptors (fd) tiek atgriezta funkcija. Pēc tam mēs izmantojam fstat() metode, lai iegūtu informāciju par failu, nosūtot to kā rādītāju uz st struktūra kā otrais parametrs un faila deskriptors kā pirmais arguments. The st struktūra ir vieta, kur šī funkcija saglabā informāciju par failu pēc tā izgūšanas.

Faila lielums baitos, kas tiek glabāts st_size biedrs st struktūra, tiek izdrukāts, ja lietošanas laikā nav radusies kļūda fstat() funkciju. Pretējā gadījumā tas izdrukā kļūdas ziņojumu.

Izvade


3: Fseek() un ftell() funkciju izmantošana

Vēl viena metode faila lieluma noteikšanai C programmēšanā ir izmantot fseek() un ftell() funkcijas. The ftell() metode atgriež faila rādītāja pašreizējo pozīciju, savukārt funkcija fseek () pārvieto faila rādītāju uz noteiktu vietu failā. Faila lielumu baitos var uzzināt, izmantojot ftell() funkcija, lai iegūtu pašreizējo pozīciju pēc lietošanas fseek() funkcija, lai pārvietotu faila rādītāju uz faila beigām.

#include
#include

int galvenais ( )
{
FILE * fp;
garš Izmērs ;

fp = fopen ( 'C_File.txt' , 'rb' ) ;
fseek ( fp, 0L, SEEK_END ) ;
Izmērs = ftell ( fp ) ;
fclose ( fp ) ;
printf ( 'Faila lielums = %ld baiti. \n ' , Izmērs ) ;

atgriezties 0 ;
}


Iepriekš minētajā kodā, izmantojot fopen () metodi, lietojumprogramma vispirms atver C_File.txt binārajā režīmā. The fseek() funkcija pēc tam izmanto SEEK_END opciju, lai pārvietotu faila rādītāju uz faila beigām. Faila pašreizējo atrašanās vietu, kas atbilst tā lielumam baitos, pēc tam var atrast, izmantojot ftell() funkciju. Pēc tam kods izmanto fclose() metode, lai aizvērtu failu pēc faila izmēra drukāšanas konsolē.

Izvade


4: Funkcijas filelength() izmantošana

Nākamā metode ir izmantot failu pārvaldības bibliotēku, kas nodrošina daudzas failu manipulācijas funkcijas, tostarp funkcijas, kas jāiegūst faila lielums . Piemēram, funkcija faila garums () atgriež faila garumu baitos, ņemot vērā tā faila nosaukumu. Šai funkcijai ir nepieciešams galvenes fails .

Ir arī cita funkcija, _filengthi64(), kas atgriež faila garumu baitos failiem, kas lielāki par 4 GB. Atšķirība starp abām funkcijām ir to atgriešanas vērtību veids, kas parāda, cik baitus funkcija var apstrādāt.

#include
#include

int galvenais ( )
{
garš Izmērs ;
char * fname = 'C_File.txt' ;
Izmērs = faila garums ( faila nr ( fopen ( fname, 'rb' ) ) ) ;
printf ( 'Faila lielums = %ld baiti. \n ' , Izmērs ) ;

atgriezties 0 ;
}


Faila lielums C_File.txt baitos tiek iegūts ar šo kodu, izmantojot Windows failu pārvaldības bibliotēku. Ja tiek norādīts atvērtā faila faila deskriptors, metode faila garums () atgriež faila garumu baitos.

fopen () atver failu tikai lasāmā binārajā režīmā šajā kodā un fileno() atgriež atvērtā faila faila deskriptoru. Tad printf() tiek izmantots faila izmēra drukāšanai. Pēc tam funkcija atgriež 0, kas norāda, ka tā ir veiksmīgi izpildīta.

Izvade


Secinājums

Ir vairākas metodes, kā atrast faila lielums baitos C , katram ir savas priekšrocības un trūkumi. Iepriekš minētajā apmācībā ir apskatītas četras dažādas metodes; stat() funkcija, fstat() funkcija, fseek() un ftell() funkcijas un faila garums () funkciju. Izpratne par šīm funkcijām palīdzēs lietotājiem atrast jebkura faila lielumu jūsu sistēmā.