Как узнать размер файла в C++?

Пользователь

от nikko , в категории: C/C++ , 3 года назад

Как узнать размер файла в C++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 3 года назад

Чтобы узнать размер файла, нам потребуется воспользоваться fstream и его функциями seekq для произвольного доступа, tellq и close

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    setlocale(LC_ALL, "rus");
    int fileSize; // Создаем переменную, в которой будет храниться значение веса файла

    fstream file("D:\\Books\\Stephen_King\\Shining.docx"); // Открываем файл по заданному пути

    file.seekg(0, ios::end);
    fileSize = file.tellg();
    file.close();

    cout << "Выбранный файл весит " << fileSize << " Байт" << endl;

    return 0;
}


Пользователь

от terrence , 2 года назад

@nikko 

В C++ можно использовать функцию stat() из заголовочного файла <sys/stat.h> для получения информации о файле, в том числе его размера. Пример использования:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#include <sys/stat.h>
#include <iostream>

int main() {
    struct stat st;
    if (stat("file.txt", &st) == 0) {
        std::cout << "File size: " << st.st_size << " bytes" << std::endl;
    } else {
        std::cout << "Error getting file information" << std::endl;
    }
    return 0;
}


В этом примере функция stat() принимает два параметра: первый - имя файла, второй - структуру stat, которую она заполняет информацией о файле. Поле st_size в этой структуре содержит размер файла в байтах.