Решение Мэтта должно работать, за исключением того, что это C ++ вместо C, и исходный запрос не нужен.
unsigned long fsize(char* file)
{
FILE * f = fopen(file, "r");
fseek(f, 0, SEEK_END);
unsigned long len = (unsigned long)ftell(f);
fclose(f);
return len;
}
Исправлена ваша скобка для вас. ;)
Обновление: на самом деле это не лучшее решение. Он ограничен файлами размером 4 ГБ в Windows, и, скорее всего, он медленнее, чем просто использование определенного для платформы вызова, например GetFileSizeEx
или stat64
.