Программа для определения размера любого файла

CBeginner
Практиковаться сейчас

Введение

В этом практическом занятии мы научимся определять размер любого файла с использованием языка программирования C. Для этого мы будем использовать функции fseek() и ftell().

Примечание: вам нужно самостоятельно создать файл ~/project/main.c, чтобы практиковать программирование и узнать, как компилировать и запускать его с использованием gcc.

cd ~/project
## создать main.c
touch main.c
## скомпилировать main.c
gcc main.c -o main
## запустить main
./main

Подключить заголовочные файлы

Начнем с подключения необходимых заголовочных файлов stdio.h и stdlib.h.

#include<stdio.h>
#include<stdlib.h>

Создать функцию main()

Далее мы создадим функцию main(), которая является точкой входа в наш C-программу.

int main()
{
    return 0;
}

Объявить переменные

Теперь мы определим необходимые переменные. Нам нужен указатель FILE для хранения файла. Также нам нужна переменная char для хранения текущего символа при чтении файла. Наконец, нам нужна целая переменная size для хранения размера файла.

FILE *fp;
char ch;
int size = 0;

Открыть файл

Теперь мы откроем файл с использованием функции fopen() и проверим, открылся ли файл успешно.

fp = fopen("MyFile.txt", "r");

if (fp == NULL)
{
    printf("\nFile unable to open...\n");
    return 1;
}
else
{
    printf("\nFile opened...\n");
}

Переместить указатель файла

Теперь мы переместим указатель файла в конец файла с использованием функции fseek().

fseek(fp, 0, 2);

Получить размер файла

Далее мы получим текущую позицию указателя файла с использованием функции ftell() и сохраним ее в переменную size.

size = ftell(fp);

Напечатать размер файла

Наконец, мы выведем размер файла с использованием функции printf().

printf("The size of given file is: %d bytes\n", size);

Закрыть файл

Теперь мы закончили с файлом, поэтому мы закроем его с использованием функции fclose().

fclose(fp);

Полный код программы

Вот полный код на C для определения размера любого файла.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    FILE *fp;
    char ch;
    int size = 0;

    fp = fopen("MyFile.txt", "r");

    if (fp == NULL)
    {
        printf("\nFile unable to open...\n");
        return 1;
    }
    else
    {
        printf("\nFile opened...\n");
    }

    fseek(fp, 0, 2);
    size = ftell(fp);

    printf("The size of given file is: %d bytes\n", size);

    fclose(fp);

    return 0;
}

Резюме

В этом практическом занятии мы узнали, как определить размер любого файла в языке программирования C с использованием функций fseek() и ftell(). Мы рассмотрели следующие темы:

  • Подключение заголовочных файлов
  • Создание функции main()
  • Определение переменных
  • Открытие файла
  • Перемещение указателя файла
  • Получение размера файла
  • Вывод размера файла
  • Закрытие файла

Лучшим практическим подходом является всегда закрытие файла после его чтения или записи.