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