出处: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; } |