Задача определения размера файла на C++. Для определения размера файла, в данном стучае, самого себя. Нужно узнать путь к себе. Затем открыть файл на чтение, переместить указатель на первый байт, и считываит каждый последовательный байт прибавляю единицу к счетчику размера файла. Сколько единиц будет у счетчика, когд аон доберется до конца файла, столько и будет байт в файле.
Ниже приведены примеры для Visual C++ и Borland C++ Builder.
#include <stdio.h>
#include <windows.h>
WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
char virname[256];
char Buffer_v[VZ];
char kas[50];
FILE *f,*fp;
GetModuleFileName(hInstance, virname, 256);
f = fopen(virname,"rb");
fseek(f,0,SEEK_END);
int size = ftell(f);
itoa(size,kas,10);
strcat(kas," - size");
MessageBox(0,kas,0,0);
return 0;
}
И второй вариант.
#pragma hdrstop
#include <stdio.h>
#include <io.h>
#include <iostream.h.h>
#pragma argsused
int file_size(char *name);
int main(int argc, char* argv[])
{
int sss = 0;
sss = file_size("c:\\6.txt");
cout<<sss;
getchar();
return 0;
}
int file_size(char *name)
{
int size=0;
char tmp;
FILE *d = fopen(name,"r");
do
{
tmp = fgetc(d);
if (tmp == '\0') continue;
size++;
}while (tmp != EOF);
return size-1;
}
Написать комментарий