如何用C语言获取文件的大小

 我来答
小星星教育知识分享
高粉答主

2019-11-25 · 用教师的智慧点燃学生的智慧火花
小星星教育知识分享
采纳数:202 获赞数:67136

向TA提问 私信TA
展开全部

intfile_size(char*filename)

{

FILE*fp=fopen(filename,"r");

if(!fp)return-1;

fseek(fp,0L,SEEK_END);

intsize=ftell(fp);

fclose(fp);

returnsize;

}

扩展资料

C语言获取文件长度及全部内容

FILE*fp;

fp=fopen("localfile","rb");//localfile文件名

fseek(fp,0L,SEEK_END);/*定位到文件末尾*/

flen=ftell(fp);/*得到文件大小*/

p=(char*)malloc(flen+1);/*根据文件大小动态分配内存空间*/

if(p==NULL)

{

fclose(fp);

return0;

}

fseek(fp,0L,SEEK_SET);/*定位到文件开头*/

fread(p,flen,1,fp);/*一次性读取全部文件内容*/

p[flen]=0;/*字符串结束标志*/

匿名用户
2015-09-04
展开全部

这与系统有关,不同的系统会提供不同的API函数,下面提供一种与系统无关的方法:


FILE *fp=fopen("C:\\Windows\\explorer.exe","rb");//打开文件
int size=0;
fseek(fp,0,SEEK_END);//将文件位置指针置于文件结尾
size=ftell(fp);//得到当前位置与文件开始位置的字节偏移量。
fclose(fp);
printf("%d",size/1024);//输出结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
推荐于2017-09-18 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6408万
展开全部

两种方法:

1、用stat()函数来获取

int main()
{
     struct stat st ;
     stat( "file.txt", &st );
     printf(" file size = %d\n", st.st_size);
     return 0;
}

2、用ftell()函数来获取

int main()
{
    FILE *fp;
    fp=fopen( "file.txt", "r");
    fseek(fp, 0L, SEEK_END );
    printf(" file size = %d\n", ftell(fp) );
    return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lcy8760450
2015-09-04 · TA获得超过956个赞
知道小有建树答主
回答量:610
采纳率:64%
帮助的人:397万
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式