Как да намерите размера на файл в C програмиране

Kak Da Namerite Razmera Na Fajl V C Programirane



Нов ли сте в програмирането на C и търсите начин да намерите размера на файл? Не отивайте никъде другаде! В това ръководство ще научите процеса на намиране на размера на файл в C програмиране. Броят байтове, използвани за съхраняване на данните във файл, се нарича размер на файла. Като знаете размера на файла, можете да извършвате различни операции за обработка на файлове, включително копиране, четене или писане.

Чрез указанията стъпка по стъпка, споменати в този урок, и прости примери за код, можете бързо да намерите размера на всеки файл.







Намерете размера на файл в C програмиране

Има различни начини за намиране на размера на файл в C, споменати по-долу.



1: Използване на функцията stat().

В C най-лесният метод за откриване на размера на файл е да използвате статистика() функция за системно повикване. The статистика() функцията извлича информация за състоянието на файла и я съхранява в структура. Един от членовете на тази структура е st_size , което дава размера на файла в байтове. Този метод избягва необходимостта от ръчно преместване на показалеца на файла, което го прави по-лесен за използване и по-малко склонен към грешки.



#include
#include

int main ( )
{
структура статистика st;
дълго размер ;
ако ( статистика ( 'C_File.txt' , и ул ) == 0 )
{
размер = st.st_size;
printf ( „Размерът на файла е %ld байта. ' , размер ) ;
}
връщане 0 ;
}


Този код извлича размера на файл, извикан C_File.txt използвайки статистика() метод от библиотека. The st_size елемент от struct stat, в който функцията съхранява информацията за файла и ни позволява да намерим размера на файла. Размерът на файла се запазва в променливата размер и след това printf() се използва за отпечатване на размера на конзолата заедно със съобщение. Преди да се опитате да получите достъп до st_size свойство, изразът if потвърждава, че статистика() извикването на функция беше успешно. След това кодът връща 0, за да покаже, че е изпълнил успешно.





Изход


2: Използване на функцията fstat().

Друга функция, подобна на статистика() е fstat() функция, която е еквивалентна на статистика() но работи върху отворен файл вместо име на файл. The fstat() функцията извлича информация за отворения файл, описан от файлов дескриптор премина към него. Препратката към отворен файл е представена от цяло число файлов дескриптор . Подобно на статистика(), fstat() връща информацията за състоянието на предоставения файл, включително неговия размер в байтове.



#include
#include
#include

int main ( ) {
int fd;
структура статистика st;
fd = отворено ( 'C_File.txt' , O_RDONLY ) ;
ако ( състояние ( fd, и ул ) == - 1 ) {
printf ( „Грешка при получаване на информация за файла. ' ) ;
връщане 1 ;
}
printf ( „Размерът на файла е %ld байта. ' , ст.ст_разм ) ;
близо ( fd ) ;
връщане 0 ;
}


В горния код файлът първоначално се отваря в този пример чрез извикване на отворен() функция с името на файла и O_RDONLY опция, която отваря файла в режим само за четене. А файлов дескриптор (fd) се връща от функцията. След това използваме fstat() метод за получаване на информация за файла, изпращайки го като указател към ул структура като втори параметър и файловия дескриптор като първи аргумент. The ул структура е мястото, където тази функция съхранява информацията за файла след извличането му.

Размерът на файла в байтове, който се съхранява в st_size член на ул структура, след това се отпечатва, ако не е имало грешка при използването на fstat() функция. В противен случай се отпечатва съобщение за грешка.

Изход


3: Използване на функциите fseek() и ftell().

Друг метод за намиране на размера на файл в C програмирането е да използвате fseek() и ftell() функции. The ftell() методът връща текущата позиция на файловия указател, докато функцията fseek() премества файловия указател на дадено място във файла. Размерът на файла в байтове може да бъде намерен с помощта на ftell() функция за получаване на текущата позиция след използване на fseek() функция за преместване на указателя на файла в края на файла.

#include
#include

int main ( )
{
ФАЙЛ * fp;
дълго размер ;

fp = fopen ( 'C_File.txt' , 'rb' ) ;
fseek ( fp, 0L, SEEK_END ) ;
размер = fтел ( fp ) ;
fclose ( fp ) ;
printf ( „Размерът на файла = %ld байта. ' , размер ) ;

връщане 0 ;
}


В горния код, използвайки fopen() метод, приложението първо отваря C_File.txt в двоичен режим. The fseek() след това функцията използва SEEK_END опция за преместване на показалеца на файла в края на файла. След това текущото местоположение на файла, което съответства на неговия размер в байтове, може да бъде намерено с помощта на ftell() функция. След това кодът използва fclose() метод за затваряне на файла след отпечатване на размера на файла в конзолата.

Изход


4: Използване на функцията filelength().

Следващият метод е чрез използване на библиотеката за управление на файлове, която предоставя много функции за манипулиране на файлове, включително функции за получаване размера на файл . Например функцията дължина на файла () връща дължината на файл в байтове, като се има предвид неговото име на файл. Тази функция изисква заглавния файл .

Има и друга функция, _filelengthi64(), който връща дължината на файл в байтове за файлове, по-големи от 4 GB. Разликата между двете функции е типът на техните връщани стойности, който показва колко байта може да обработва функцията.

#include
#include

int main ( )
{
дълго размер ;
въглен * fname = 'C_File.txt' ;
размер = дължина на файла ( fileno ( fopen ( fname, 'rb' ) ) ) ;
printf ( „Размерът на файла = %ld байта. ' , размер ) ;

връщане 0 ;
}


Размерът на файла C_File.txt в байтове се получава от този код с помощта на библиотеката за управление на файлове на Windows. Когато е предоставен файловият дескриптор на отворен файл, методът дължина на файла () връща дължината на файла в байтове.

fopen() отваря файла в двоичен режим само за четене в този код и fileno() връща файловия дескриптор на отворения файл. Тогава, printf() се използва за отпечатване на размера на файла. След това функцията връща 0, което показва, че е изпълнена успешно.

Изход


Заключение

Има няколко метода за намиране на размер на файл в байтове в C , всеки със своите предимства и недостатъци. Четири различни метода са обсъдени в урока по-горе; статистика() функция, fstat() функция, fseek() и ftell() функции и дължина на файла () функция. Разбирането на тези функции ще помогне на потребителите да намерят размера на всеки файл във вашата система.