Jak zjistit velikost souboru v programování C

Jak Zjistit Velikost Souboru V Programovani C



Jste v programování v C nováčkem a hledáte způsob, jak zjistit velikost souboru? nikam jinam nechoď! V této příručce se naučíte proces zjištění velikosti souboru v programování C. Počet bajtů použitých k uložení dat uvnitř souboru se označuje jako velikost souboru. Když znáte velikost souboru, můžete provádět různé operace se soubory, včetně kopírování, čtení nebo zápisu.

Pomocí podrobných pokynů uvedených v tomto kurzu a jednoduchých příkladů kódu můžete rychle zjistit velikost libovolného souboru.







Najděte velikost souboru v programování C

Existují různé způsoby, jak zjistit velikost souboru v C uvedené níže.



1: Použití funkce stat().

V C je nejpřímější metodou, jak zjistit velikost souboru, použít stat() funkce systémového volání. The stat() funkce načte informace o stavu souboru a uloží je do struktury. Jedním z členů této struktury je st_size , který udává velikost souboru v bajtech. Tato metoda se vyhýbá nutnosti ručně přesouvat ukazatel souboru, což usnadňuje použití a je méně náchylné k chybám.



#include
#include

int main ( )
{
strukturovat stat Svatý;
dlouho velikost ;
-li ( stat ( 'C_File.txt' , & Svatý ) == 0 )
{
velikost = st.st_size;
printf ( 'Velikost souboru je %ld bajtů.' \n ' , velikost ) ;
}
vrátit se 0 ;
}


Tento kód načte velikost souboru s názvem C_File.txt za použití stat() metoda z knihovna. The st_size prvek struct stat, ve kterém funkce uchovává informace o souboru a umožňuje nám zjistit velikost souboru. Velikost souboru je zachována v proměnné velikosti a poté printf() se používá k vytištění velikosti do konzoly spolu se zprávou. Před pokusem o přístup k st_size vlastnost, příkaz if ověřuje, že stat() volání funkce bylo úspěšné. Kód pak vrátí 0, aby ukázal, že proběhl úspěšně.





Výstup


2: Použití funkce fstat().

Další funkce podobná stat() je fstat() funkce, která je ekvivalentní stat() ale funguje na otevřeném souboru místo názvu souboru. The fstat() funkce načte informace o otevřeném souboru popsaném v deskriptor souboru přešel na to. Odkaz na otevřený soubor je reprezentován celým číslem deskriptor souboru . Podobně jako stat(), fstat() vrátí informace o stavu poskytnutého souboru, včetně jeho velikosti v bajtech.



#include
#include
#include

int main ( ) {
int fd;
strukturovat stat Svatý;
fd = otevřeno ( 'C_File.txt' , O_RDONLY ) ;
-li ( Stát ( fd, & Svatý ) == - 1 ) {
printf ( 'Chyba při získávání informací o souboru. \n ' ) ;
vrátit se 1 ;
}
printf ( 'Velikost souboru je %ld bajtů.' \n ' , st.st_size ) ;
zavřít ( fd ) ;
vrátit se 0 ;
}


Ve výše uvedeném kódu je soubor v tomto příkladu zpočátku otevřen voláním OTEVŘENO() funkce s názvem souboru a O_RDONLY možnost, která otevře soubor v režimu pouze pro čtení. A deskriptor souboru (fd) je vráceno funkcí. Poté použijeme fstat() metoda k získání informací o souboru a jeho odeslání jako ukazatel na Svatý struktura jako druhý parametr a deskriptor souboru jako první argument. The Svatý struktura je místo, kde tato funkce uchovává informace o souboru po jeho načtení.

Velikost souboru v bajtech, který je uchováván v st_size člen Svatý struktura, se pak vytiskne, pokud při používání souboru fstat() funkce. V opačném případě vypíše chybovou zprávu.

Výstup


3: Použití funkcí fseek() a ftell().

Další metodou, jak zjistit velikost souboru v programování C, je použít fseek() a ftell() funkcí. The ftell() metoda vrací aktuální pozici ukazatele souboru, zatímco funkce fseek() přesune ukazatel souboru na dané místo v souboru. Velikost souboru v bajtech lze zjistit pomocí ftell() funkce pro získání aktuální polohy po použití fseek() funkce pro přemístění ukazatele souboru na konec souboru.

#include
#include

int main ( )
{
SOUBOR * fp;
dlouho velikost ;

fp = fopen ( 'C_File.txt' , 'rb' ) ;
fhledat ( fp, 0 l, SEEK_END ) ;
velikost = ftel ( fp ) ;
fzavřít ( fp ) ;
printf ( 'Velikost souboru = %ld bajtů. \n ' , velikost ) ;

vrátit se 0 ;
}


Ve výše uvedeném kódu pomocí fopen() aplikace nejprve otevře C_File.txt v binárním režimu. The fseek() funkce pak používá SEEK_END možnost přemístit ukazatel souboru na konec souboru. Aktuální umístění souboru, které odpovídá jeho velikosti v bajtech, pak lze zjistit pomocí ftell() funkce. Kód pak používá fclose() způsob zavření souboru po vytištění velikosti souboru do konzoly.

Výstup


4: Použití funkce filelength().

Další metodou je použití knihovny pro správu souborů, která poskytuje mnoho funkcí pro manipulaci se soubory, včetně funkcí k získání velikost souboru . Například funkce délka souboru() vrátí délku souboru v bajtech, danou jeho názvem souboru. Tato funkce vyžaduje soubor záhlaví .

Existuje i další funkce, _filelengthi64(), který u souborů větších než 4 GB vrací délku souboru v bajtech. Rozdíl mezi těmito dvěma funkcemi je typ jejich návratových hodnot, který ukazuje, kolik bajtů funkce zvládne.

#include
#include

int main ( )
{
dlouho velikost ;
char * fname = 'C_File.txt' ;
velikost = délka souboru ( Soubor č ( fopen ( přezdívka, 'rb' ) ) ) ;
printf ( 'Velikost souboru = %ld bajtů. \n ' , velikost ) ;

vrátit se 0 ;
}


Velikost souboru C_File.txt v bajtech se získává tímto kódem pomocí knihovny pro správu souborů Windows. Pokud je uveden deskriptor souboru otevřeného souboru, metoda délka souboru() vrátí délku souboru v bajtech.

fopen() otevře soubor v binárním režimu pouze pro čtení v tomto kódu a Soubor č() vrátí deskriptor souboru otevřeného souboru. Pak, printf() se používá k tisku velikosti souboru. Funkce pak vrátí 0, což znamená, že byla úspěšně provedena.

Výstup


Závěr

Existuje několik způsobů, jak najít velikost souboru v bajtech v C , každý má své výhody a nevýhody. Ve výše uvedeném tutoriálu jsou popsány čtyři různé metody; stat() funkce, fstat() funkce, fseek() a ftell() funkce a délka souboru() funkce. Pochopení těchto funkcí pomůže uživatelům najít velikost libovolného souboru ve vašem systému.