Получить размер больших файлов в C ++ - PullRequest
0 голосов
/ 23 февраля 2020

У меня большой файл размером около 4 ГБ, и я хочу получить правильный размер в байтах, я пробовал tellg();, но дает неправильный результат, я пробовал много функций, но все они не работают, Идея состоит в том, чтобы иметь такую ​​функцию, как:

    unsigned long long int GetFileSize(std::string path){
        //...code
    }

1 Ответ

0 голосов
/ 23 февраля 2020

Как упомянуто Джеком в комментариях, вы можете использовать std :: filesystem :: file_size .

Если C ++ 17 не является опцией, попробуйте следующее:

#include <sys/stat.h>
unsigned long long GetFileSize(std::string path){
    struct stat64 file_info;
    if (stat64(path.c_str(), &file_info) == 0)
        return file_info.st_size;
    return 0;
}

Работает здесь корректно с TDM-G CC 64 бит и файлом 8 ГБ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...