Hogyan lehet megtalálni a fájl méretét a C programozásban

Hogyan Lehet Megtalalni A Fajl Meretet A C Programozasban



Még nem ismeri a C programozást, és keresi a módját, hogy megtalálja a fájl méretét? Ne menj máshova! Ebben az útmutatóban megismerheti a fájl méretének meghatározását a C programozásban. A fájlban lévő adatok tárolására felhasznált bájtok számát a fájl méretének nevezzük. A fájlméret ismeretében különféle fájlkezelési műveleteket hajthat végre, beleértve a másolást, az olvasást vagy az írást.

Az ebben az oktatóanyagban említett lépésről lépésre bemutatott irányelvek és egyszerű kódpéldák segítségével gyorsan megtalálhatja bármely fájl méretét.







Keresse meg a fájl méretét a C programozásban

Az alábbiakban felsorolt ​​különböző módokon találhatja meg a fájl méretét C nyelven.



1: Stat() függvény használata

C nyelven a legegyszerűbb módszer a fájl méretének megállapítására a statisztika() rendszerhívás funkció. A statisztika() függvény lekéri a fájl állapotinformációit, és egy struktúrában tárolja. Ennek a struktúrának az egyik tagja az st_size , amely a fájl méretét adja meg bájtban. Ezzel a módszerrel elkerülhető, hogy a fájlmutatót kézzel kell mozgatni, így könnyebben használható és kevésbé hajlamos a hibákra.



#include
#include

int fő ( )
{
struct statisztika utca;
hosszú méret ;
ha ( statisztika ( 'C_Fájl.txt' , & utca ) == 0 )
{
méret = st.st_size;
printf ( 'A fájl mérete %ld bájt. \n ' , méret ) ;
}
Visszatérés 0 ;
}


Ez a kód lekéri a nevű fájl méretét C_Fájl.txt használni a statisztika() módszer a könyvtár. A st_size A struct stat eleme, amelyben a függvény tárolja a fájlra vonatkozó információkat, és lehetővé teszi a fájl méretének meghatározását. A fájl mérete a változó méretben marad, majd printf() a méret kinyomtatására szolgál a konzolra egy üzenettel együtt. Mielőtt megpróbálna hozzáférni a st_size tulajdonság, az if utasítás igazolja, hogy a statisztika() a függvényhívás sikeres volt. A kód ezután 0-t ad vissza, jelezve, hogy sikeresen futott.





Kimenet


2: Az fstat() függvény használata

Egy másik hasonló funkció statisztika() az a fstat() függvény, ami egyenértékű statisztika() de fájlnév helyett nyitott fájlon működik. A fstat() függvény információkat kér le a megnyitott fájlról, amelyet a fájlleíró átment hozzá. A megnyitott fájlra való hivatkozást egész szám jelöli fájlleíró . Hasonlóan a statisztika(), fstat() visszaadja a megadott fájl állapotinformációit, beleértve a méretét bájtokban.



#include
#include
#include

int fő ( ) {
int fd;
struct statisztika utca;
fd = nyitott ( 'C_Fájl.txt' , O_RDONLY ) ;
ha ( állapot ( fd, & utca ) == - 1 ) {
printf ( 'Hiba a fájlinformációk lekérésekor. \n ' ) ;
Visszatérés 1 ;
}
printf ( 'A fájl mérete %ld bájt. \n ' , st.st_size ) ;
Bezárás ( fd ) ;
Visszatérés 0 ;
}


A fenti kódban a fájl ebben a példában először a következő meghívásával nyílik meg nyisd ki() függvény a fájlnévvel és a O_RDONLY opciót, amely csak olvasható módban nyitja meg a fájlt. A fájlleíró (fd) függvény visszaadja. Ezt követően használjuk a fstat() módszerrel információt szerezhet a fájlról, mutatóként elküldve a fájlra utca második paraméterként a szerkezetet, első argumentumként pedig a fájlleírót. A utca a struktúra az, ahol ez a funkció a fájl adatait tárolja a visszakeresés után.

A fájl mérete bájtban, amely a st_size tagja a utca szerkezetét, kinyomtatja, ha nem történt hiba a használata során fstat() funkció. Ellenkező esetben hibaüzenetet nyomtat.

Kimenet


3: Az fseek() és az ftell() függvények használata

Egy másik módszer a fájl méretének meghatározására a C programozásban a fseek() és ftell() funkciókat. A ftell() A metódus a fájlmutató aktuális pozícióját adja vissza, míg az fseek() függvény a fájlmutatót egy adott helyre mozgatja a fájlban. A fájl méretét bájtban a következővel találhatja meg ftell() funkció használata után az aktuális pozíciót kapja meg fseek() funkcióval a fájlmutatót a fájl végére helyezi át.

#include
#include

int fő ( )
{
FÁJL * fp;
hosszú méret ;

fp = fopen ( 'C_Fájl.txt' , 'rb' ) ;
fseek ( fp, 0L, SEEK_END ) ;
méret = ftell ( fp ) ;
fclose ( fp ) ;
printf ( 'A fájl mérete %ld bájt. \n ' , méret ) ;

Visszatérés 0 ;
}


A fenti kódban a fopen() módszerrel az alkalmazás először megnyitja a C_Fájl.txt bináris módban. A fseek() függvény ezután a SEEK_END lehetőséget, hogy a fájlmutatót a fájl végére helyezze át. A fájl jelenlegi helye, amely megfelel a bájtokban mért méretének, a következő segítségével található meg ftell() funkció. A kód ezután a fclose() módszerrel zárhatja be a fájlt, miután kinyomtatta a fájl méretét a konzolra.

Kimenet


4: A filelength() függvény használata

A következő módszer a fájlkezelő könyvtár használata, amely számos fájlkezelési funkciót biztosít, beleértve a lekérhető funkciókat is egy fájl mérete . Például a függvény fájlhossz() a fájl hosszát adja vissza bájtban, a fájlnév alapján. Ehhez a funkcióhoz a fejlécfájl szükséges .

Van egy másik funkció is, _filengthi64(), amely 4 GB-nál nagyobb fájlok esetén a fájl hosszát adja vissza bájtban. A két függvény közötti különbség a visszatérési értékük típusa, amely megmutatja, hogy a függvény hány bájtot tud kezelni.

#include
#include

int fő ( )
{
hosszú méret ;
char * fname = 'C_Fájl.txt' ;
méret = fájlhossz ( fileno ( fopen ( fname, 'rb' ) ) ) ;
printf ( 'A fájl mérete %ld bájt. \n ' , méret ) ;

Visszatérés 0 ;
}


A fájl mérete C_Fájl.txt bájtban kapja meg ezt a kódot a Windows fájlkezelő könyvtár használatával. Ha megadja a megnyitott fájl fájlleíróját, a metódus fájlhossz() visszaadja a fájl hosszát bájtban.

fopen() csak olvasható bináris módban nyitja meg a fájlt ebben a kódban, és fileno() visszaadja a megnyitott fájl fájlleíróját. Akkor, printf() a fájlméret nyomtatására szolgál. A függvény ezután 0-t ad vissza, ami azt jelzi, hogy sikeresen végrehajtották.

Kimenet


Következtetés

Számos módszer létezik a megtalálására egy fájl mérete bájtban C-ben , mindegyiknek megvannak a maga előnyei és hátrányai. A fenti oktatóanyag négy különböző módszert tárgyal; statisztika() funkció, fstat() funkció, fseek() és ftell() funkciókat, és a fájlhossz() funkció. Ezeknek a funkcióknak a megértése segít a felhasználóknak megtalálni a rendszerén lévő fájl méretét.