Существует куча способов узнать размер файла при помощи С/С++. Есть способы, которые зависят от операционной системы, есть те, которые зависят от файловой системы.
Например, этот вариант отлично работает в unix-like системах
// return file size in bytes int getFileSize(FILE *input) { int fileSizeBytes; // set file pointer to end of file fseek(input, 0, SEEK_END); // get current pointer position in bytes (== file size in bytes) fileSizeBytes = ftell(input); // return pointer to begin of file (it's very IMPORTANT) fseek(input, 0, SEEK_SET); return fileSizeBytes; }
#include <sys/stat.h> ... int getFileSize(const char * fileName) { struct stat file_stat; stat(fileName, &file_stat); return file_stat.st_size; }
Здравствуйте!
ОтветитьУдалитьВоспользовался вторым методом по определению размера файла.
Но метод возвращает отрицательное значение. Файл большой, где то порядка гигабайта. Как тогда быть?
Та же проблема.....
ОтветитьУдалитьВозвращать double вместо int?
ОтветитьУдалитьВам будет возвращаться int, а значит на 32-х битных ОСях в инт столько не влезит (4 байта)
ОтветитьУдалитьСразу видно, что автор быдлокодер. Нихуя не умеет объяснять.
ОтветитьУдалитьБыдлокомментатор.
УдалитьThanks!!!!!
ОтветитьУдалитьлапти!!!
ОтветитьУдалить