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

Рейтинг: 0Ответов: 1Опубликовано: 17.08.2023

В интернете есть несколько вариантов: просто перечитать весь файл (если файл большой, то не подходит из-за скорости), использовать tellg() (не подходит, так как ограничен на аппаратном уровне (не больше 8 гб)).

Ни один из них мне не подходит. Есть ли какой-нибудь иной подход?

Ответы

▲ 4Принят

См. функцию file_size из filesystem.

Однако не понимаю ваше неприятие tellg(). Отлично сработало на 140-гигабайтном файле. В чем вы видите проблемы?

int main(int argc, char * argv[])
{
    ifstream in("BELOFF_2O23.O4.ISO");
    in.seekg(0,ios::end);
    cout << in.tellg();
}

выдает 150875752448, dir дает

05.08.2023  16:19   150 875 752 448 BELOFF_2O23.O4.ISO

Что не так?