C和C++获取文件大小的方法总结

出处:http://hi.baidu.com/kofeffect/blog/item/cd040c2b2979d8fee6cd40c4.html

1.MFC中的方法:(C++)

CFileStatus status;

CFile::GetStatus("D:\test.txt",status);

long lSizeOfFile;

lSizeOfFile = status.m_size;

lSizeOfFile的值就是D:\test.txt文件的大小

2.标准C获得文件大小的5种方法

(注意:"FILE"指的是当前文件,你可以改为有效路径的目标文件,比如"D:\test.txt")

#include "stdafx.h"

#include "stdio.h"

#include

#include

#include



int getfilesize()

{

int iresult;

struct _stat buf;

iresult = _stat(FILE,&buf);

if(iresult == 0)

{

return buf.st_size;

}

return NULL;

}

int getfilesize01()

{

int fp;

fp=_open(FILE,_O_RDONLY);

if(fp==-1)

return NULL;

return _filelength(fp);

//return NULL;

}

int getfilesize02()

{

int fp;

fp=_open(FILE,_O_RDONLY);

if(fp==-1)

return NULL;

return _lseek(fp,0,SEEK_END);

//return NULL;

}

int getfilesize03()

{

int fp;

fp=_open(FILE,_O_RDONLY);

if(fp==-1)

return NULL;

return _lseek(fp,0,SEEK_END);

//return NULL;

}

int getfilesize04()

{

FILE *fp;

if((fp=fopen(FILE,"r"))==NULL)

return 0;

fseek(fp,0,SEEK_END);

return ftell(fp); //return NULL;

}

int getfilesize05()

{

FILE *fp;

char str[1];

if((fp=fopen(FILE,"rb"))==NULL)

return 0;

for(int i = 0;!feof(fp);i++)

{

fread(&str,1,1,fp);



}

return i - 1; //return NULL;

}

int main(int argc, char* argv[])

{



printf("getfilesize()=%d\n",getfilesize());

printf("getfilesize01()=%d\n",getfilesize01());

printf("getfilesize02()=%d\n",getfilesize02());

printf("getfilesize03()=%d\n",getfilesize03());

printf("getfilesize04()=%d\n",getfilesize04());

printf("getfilesize05()=%d\n",getfilesize05());

return 0;

}

原文链接: https://www.cnblogs.com/wqvbjhc/archive/2011/12/28/2465089.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/39293

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午3:57
下一篇 2023年2月8日 下午3:58

相关推荐