背景
最近项目中弄个接口,涉及到二进制文件处理,刚开始对读写文件夹这块没有太注意,结果最后浪费了一些时间。
文件大小600+k(不到一兆),二进制存储,总长度638208个字节,如下:
正文
最初,通过fopen打开文件,如下:
/* 打开文件*/
if((fp_input = fopen(strFilePath.GetBuffer(), "r")) == NULL)
{
MessageBox("Can't open intput file!");
}
然后获取文件的总长度,如下:
/* 获取文件总长度(总字节数) */
long filesize(FILE *stream)
{
long curpos, length;
curpos = ftell(stream);
fseek(stream, 0L, SEEK_END);
length = ftell(stream);
fseek(stream, curpos, SEEK_SET);
return length;
}
一切看似都很正常,文件能打开,总长度