Jak znaleźć rozmiar pliku w programowaniu C

Jak Znalezc Rozmiar Pliku W Programowaniu C



Czy jesteś nowy w programowaniu w C i szukasz sposobu na znalezienie rozmiaru pliku? Idź nigdzie indziej! W tym przewodniku poznasz proces znajdowania rozmiaru pliku w programowaniu w C. Liczba bajtów używanych do przechowywania danych w pliku jest określana jako rozmiar pliku. Znając rozmiar pliku, możesz wykonywać różne operacje związane z obsługą plików, w tym kopiowanie, odczytywanie lub zapisywanie.

Dzięki wskazówkom krok po kroku wymienionym w tym samouczku i prostym przykładom kodu możesz szybko znaleźć rozmiar dowolnego pliku.







Znajdź rozmiar pliku w programowaniu C

Istnieją różne sposoby znalezienia rozmiaru pliku w C, o których mowa poniżej.



1: Używanie funkcji stat().

W C najprostszą metodą ustalenia rozmiaru pliku jest użycie metody stan() funkcja wywołania systemowego. The stan() funkcja pobiera informacje o stanie pliku i przechowuje je w strukturze. Jednym z członków tej struktury jest st_size , która podaje rozmiar pliku w bajtach. Ta metoda pozwala uniknąć konieczności ręcznego przesuwania wskaźnika pliku, dzięki czemu jest łatwiejsza w użyciu i mniej podatna na błędy.



#include
#include

int główny ( )
{
struktura stan st;
długi rozmiar ;
Jeśli ( stan ( 'C_Plik.txt' , & ul ) == 0 )
{
rozmiar = st.st_size;
drukujf ( „Rozmiar pliku to % ld bajtów. \N ' , rozmiar ) ;
}
powrót 0 ;
}


Ten kod pobiera rozmiar pliku o nazwie C_Plik.txt używając stan() metoda z biblioteka. The st_size element struct stat, w którym funkcja przechowuje informacje o pliku i pozwala nam znaleźć rozmiar pliku. Rozmiar pliku jest przechowywany w zmiennej size, a następnie printf() służy do drukowania rozmiaru na konsoli wraz z komunikatem. Przed próbą uzyskania dostępu do st_size właściwość, if instrukcja sprawdza, czy stan() wywołanie funkcji powiodło się. Następnie kod zwraca 0, aby pokazać, że został pomyślnie uruchomiony.





Wyjście


2: Używanie funkcji fstat().

Kolejna funkcja podobna do stan() jest fstat() funkcja, która jest równoważna stan() ale działa na otwartym pliku zamiast nazwy pliku. The fstat() funkcja pobiera informacje o otwartym pliku opisanym przez deskryptor pliku przeszedł do tego. Odwołanie do otwartego pliku jest reprezentowane przez liczbę całkowitą deskryptor pliku . Podobny do stan(), fstat() zwraca informacje o stanie dostarczonego pliku, w tym jego rozmiar w bajtach.



#include
#include
#include

int główny ( ) {
int fd;
struktura stan st;
fd = otwarte ( 'C_Plik.txt' , O_RDONLY ) ;
Jeśli ( państwo ( fd, & ul ) == - 1 ) {
drukujf ( „Błąd pobierania informacji o pliku. \N ' ) ;
powrót 1 ;
}
drukujf ( „Rozmiar pliku to % ld bajtów. \N ' , st.st_size ) ;
zamknąć ( fd ) ;
powrót 0 ;
}


W powyższym kodzie plik jest początkowo otwierany w tym przykładzie przez wywołanie metody otwarty() funkcję z nazwą pliku i TYLKO O_RD opcja, która otwiera plik w trybie tylko do odczytu. A deskryptor pliku (fd) jest zwracana przez funkcję. Następnie używamy tzw fstat() metodę uzyskania informacji o pliku, wysyłając go jako wskaźnik do pliku ul struktura jako drugi parametr i deskryptor pliku jako pierwszy argument. The ul struktura to miejsce, w którym ta funkcja przechowuje informacje o pliku po jego pobraniu.

Rozmiar pliku w bajtach, który jest przechowywany w st_size członek ul struktura jest następnie drukowana, jeśli nie wystąpił błąd podczas korzystania z pliku fstat() funkcjonować. W przeciwnym razie drukuje komunikat o błędzie.

Wyjście


3: Korzystanie z funkcji fseek() i ftell().

Inną metodą znalezienia rozmiaru pliku w programowaniu w C jest użycie metody fseek() I ftel() Funkcje. The ftel() Metoda zwraca aktualną pozycję wskaźnika pliku, natomiast funkcja fseek() przesuwa wskaźnik pliku w określone miejsce w pliku. Rozmiar pliku w bajtach można znaleźć za pomocą ftel() funkcja, aby uzyskać aktualną pozycję po użyciu fseek() funkcja przeniesienia wskaźnika pliku na koniec pliku.

#include
#include

int główny ( )
{
PLIK * fp;
długi rozmiar ;

fp = fotwiera ( 'C_Plik.txt' , 'rb' ) ;
szukaj ( fp, 0L, SEEK_END ) ;
rozmiar = dobrze ( fp ) ;
zamknij ( fp ) ;
drukujf ( „Rozmiar pliku = %ld bajtów. \N ' , rozmiar ) ;

powrót 0 ;
}


W powyższym kodzie, używając fopen() metoda, aplikacja najpierw otwiera plik C_Plik.txt w trybie binarnym. The fseek() funkcja następnie używa SEEK_END opcja przeniesienia wskaźnika pliku na koniec pliku. Bieżącą lokalizację pliku, która odpowiada jego rozmiarowi w bajtach, można następnie znaleźć za pomocą ftel() funkcjonować. Następnie kod używa fclose() metoda zamknięcia pliku po wydrukowaniu rozmiaru pliku do konsoli.

Wyjście


4: Używanie funkcji filelength().

Następną metodą jest użycie biblioteki zarządzania plikami, która zapewnia wiele funkcji manipulacji plikami, w tym funkcje pobierania rozmiar pliku . Na przykład funkcja długość pliku() zwraca długość pliku w bajtach, biorąc pod uwagę jego nazwę pliku. Ta funkcja wymaga pliku nagłówkowego .

Jest też inna funkcja, _filelengthi64(), która zwraca długość pliku w bajtach dla plików większych niż 4 GB. Różnica między tymi dwiema funkcjami polega na typie ich wartości zwracanych, który pokazuje, ile bajtów może obsłużyć funkcja.

#include
#włącz

int główny ( )
{
długi rozmiar ;
zwęglać * nazwa użytkownika = 'C_Plik.txt' ;
rozmiar = długość pliku ( plik numer ( otwierać ( imię użytkownika, 'rb' ) ) ) ;
drukujf ( „Rozmiar pliku = %ld bajtów. \N ' , rozmiar ) ;

powrót 0 ;
}


Rozmiar pliku C_Plik.txt w bajtach uzyskuje się za pomocą tego kodu przy użyciu biblioteki zarządzania plikami systemu Windows. Po podaniu deskryptora otwartego pliku metoda długość pliku() zwraca długość pliku w bajtach.

fopen() otwiera plik w trybie binarnym tylko do odczytu w tym kodzie i plik numer() zwraca deskryptor otwartego pliku. Następnie, printf() służy do drukowania rozmiaru pliku. Następnie funkcja zwraca 0, co oznacza, że ​​została pomyślnie wykonana.

Wyjście


Wniosek

Istnieje kilka metod, aby znaleźć rozmiar pliku w bajtach w C , każdy z własnymi zaletami i wadami. W powyższym samouczku omówiono cztery różne metody; stan() funkcjonować, fstat() funkcjonować, fseek() I ftel() funkcje i długość pliku() funkcjonować. Zrozumienie tych funkcji pomoże użytkownikom znaleźć rozmiar dowolnego pliku w systemie.