Ako zistiť veľkosť súboru v programovaní C

Ako Zistit Velkost Suboru V Programovani C



Ste novým programovaním v jazyku C a hľadáte spôsob, ako zistiť veľkosť súboru? Nechoďte nikam inam! V tejto príručke sa naučíte proces zisťovania veľkosti súboru v programovaní C. Počet bajtov použitých na uchovávanie údajov v súbore sa označuje ako veľkosť súboru. Ak poznáte veľkosť súboru, môžete vykonávať rôzne operácie so súbormi vrátane kopírovania, čítania alebo zápisu.

Pomocou podrobných pokynov uvedených v tomto návode a jednoduchých príkladov kódu môžete rýchlo nájsť veľkosť akéhokoľvek súboru.







Nájdite veľkosť súboru v programovaní C

Existujú rôzne spôsoby, ako zistiť veľkosť súboru v C, ktoré sú uvedené nižšie.



1: Použitie funkcie stat().

V C je najjednoduchšou metódou na zistenie veľkosti súboru použitie stat() funkcia systémového volania. The stat() funkcia načíta informácie o stave súboru a uloží ich do štruktúry. Jedným z členov tejto štruktúry je st_size , ktorý udáva veľkosť súboru v bajtoch. Táto metóda sa vyhýba ručnému presúvaniu ukazovateľa súboru, čím sa zjednodušuje jej používanie a je menej náchylná na chyby.



#include
#include

int main ( )
{
štrukturovať stat st;
dlhý veľkosť ;
ak ( stat ( 'C_File.txt' , & sv ) == 0 )
{
veľkosť = st.st_size;
printf ( 'Veľkosť súboru je %ld bajtov. \n ' , veľkosť ) ;
}
vrátiť 0 ;
}


Tento kód načíta veľkosť súboru tzv C_File.txt pomocou stat() metóda z knižnica. The st_size prvok struct stat, v ktorom funkcia uchováva informácie o súbore a umožňuje nám zistiť veľkosť súboru. Veľkosť súboru sa uchováva v premennej veľkosti a potom printf() sa používa na tlač veľkosti do konzoly spolu so správou. Pred pokusom o prístup k st_size vlastnosť, príkaz if overuje, že stat() volanie funkcie bolo úspešné. Kód potom vráti 0, čím ukáže, že prebehol úspešne.





Výkon


2: Použitie funkcie fstat().

Ďalšia funkcia podobná stat() je fstat() funkcia, ktorá je ekvivalentná stat() ale funguje na otvorenom súbore namiesto názvu súboru. The fstat() funkcia načíta informácie o otvorenom súbore popísanom v deskriptor súboru prešiel na to. Odkaz na otvorený súbor je reprezentovaný celým číslom deskriptor súboru . Podobne ako stat(), fstat() vráti informácie o stave poskytnutého súboru vrátane jeho veľkosti v bajtoch.



#include
#include
#include

int main ( ) {
int fd;
štrukturovať stat st;
fd = otvorené ( 'C_File.txt' , O_RDONLY ) ;
ak ( štát ( fd, & sv ) == - 1 ) {
printf ( 'Chyba pri získavaní informácií o súbore. \n ' ) ;
vrátiť 1 ;
}
printf ( 'Veľkosť súboru je %ld bajtov. \n ' , st.st_size ) ;
Zavrieť ( fd ) ;
vrátiť 0 ;
}


Vo vyššie uvedenom kóde sa súbor v tomto príklade najprv otvorí volaním OTVORENÉ() funkcia s názvom súboru a O_RDONLY možnosť, ktorá otvorí súbor v režime iba na čítanie. A deskriptor súboru (fd) je vrátená funkciou. Potom použijeme fstat() metóda na získanie informácií o súbore, odoslanie ako ukazovateľ na sv štruktúra ako druhý parameter a deskriptor súboru ako prvý argument. The sv štruktúra je miesto, kde táto funkcia uchováva informácie o súbore po jeho získaní.

Veľkosť súboru v bajtoch, ktorý je uložený v st_size členom sv štruktúra, sa potom vytlačí, ak sa pri používaní nevyskytla žiadna chyba fstat() funkciu. V opačnom prípade vytlačí chybové hlásenie.

Výkon


3: Použitie funkcií fseek() a ftell().

Ďalšou metódou na nájdenie veľkosti súboru v programovaní C je použitie fseek() a ftell() funkcie. The ftell() metóda vráti aktuálnu pozíciu ukazovateľa súboru, zatiaľ čo funkcia fseek() presunie ukazovateľ súboru na dané miesto v súbore. Veľkosť súboru v bajtoch možno zistiť pomocou ftell() funkcia na získanie aktuálnej polohy po použití fseek() funkcia na premiestnenie ukazovateľa súboru na koniec súboru.

#include
#include

int main ( )
{
FILE * fp;
dlhý veľkosť ;

fp = fopen ( 'C_File.txt' , 'rb' ) ;
fhľadať ( fp, 0 l, SEEK_END ) ;
veľkosť = ftell ( fp ) ;
fclose ( fp ) ;
printf ( 'Veľkosť súboru = %ld bajtov. \n ' , veľkosť ) ;

vrátiť 0 ;
}


Vo vyššie uvedenom kóde pomocou fopen() aplikácia najprv otvorí C_File.txt v binárnom režime. The fseek() funkcia potom používa SEEK_END možnosť premiestniť ukazovateľ súboru na koniec súboru. Aktuálne umiestnenie súboru, ktoré zodpovedá jeho veľkosti v bajtoch, potom možno nájsť pomocou ftell() funkciu. Kód potom používa fclose() metóda na zatvorenie súboru po vytlačení veľkosti súboru na konzolu.

Výkon


4: Použitie funkcie filelength().

Ďalšou metódou je použitie knižnice na správu súborov, ktorá poskytuje mnoho funkcií na manipuláciu so súbormi, vrátane funkcií na získanie veľkosť súboru . Napríklad funkcia dĺžka súboru () vráti dĺžku súboru v bajtoch vzhľadom na jeho názov súboru. Táto funkcia vyžaduje hlavičkový súbor .

Existuje aj ďalšia funkcia, _filelengthi64(), ktorý vráti dĺžku súboru v bajtoch pre súbory väčšie ako 4 GB. Rozdiel medzi týmito dvoma funkciami je typ ich návratových hodnôt, ktorý ukazuje, koľko bajtov funkcia dokáže spracovať.

#include
#include

int main ( )
{
dlhý veľkosť ;
char * meno = 'C_File.txt' ;
veľkosť = dĺžka súboru ( fileno ( fopen ( meno, 'rb' ) ) ) ;
printf ( 'Veľkosť súboru = %ld bajtov. \n ' , veľkosť ) ;

vrátiť 0 ;
}


Veľkosť súboru C_File.txt v bajtoch sa získava týmto kódom pomocou knižnice správy súborov systému Windows. Ak je poskytnutý deskriptor súboru otvoreného súboru, metóda dĺžka súboru () vráti dĺžku súboru v bajtoch.

fopen() otvorí súbor v binárnom režime iba na čítanie v tomto kóde a fileno() vráti deskriptor súboru otvoreného súboru. potom printf() sa používa na tlač veľkosti súboru. Funkcia potom vráti 0, čo znamená, že bola úspešne vykonaná.

Výkon


Záver

Existuje niekoľko spôsobov, ako nájsť veľkosť súboru v bajtoch v C , každý má svoje výhody a nevýhody. Vo vyššie uvedenom návode sú diskutované štyri rôzne metódy; stat() funkcia, fstat() funkcia, fseek() a ftell() funkcie a dĺžka súboru () funkciu. Pochopenie týchto funkcií pomôže používateľom nájsť veľkosť akéhokoľvek súboru vo vašom systéme.