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
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.