问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c代码中如何获取一个文件的字节数~~

发布网友 发布时间:2022-05-14 05:56

我来回答

2个回答

热心网友 时间:2023-10-05 13:43

用以下的方法可以获取一个文件的字节数:
先用fopen打开文件,然后把文件指针指向文件尾.
再用ftell获得文件指针当前位置(即文件长度).
源代码:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
FILE* fp = NULL;
int nFileLen = 0;
fp = fopen("c:/Test.txt", "rb");
if (fp == NULL)
{
cout << "can't open file" << endl;
return 0;
}
fseek(fp,0,SEEK_END); //定位到文件末
nFileLen = ftell(fp); //文件长度
cout << "file len = " << nFileLen << endl;
return 0;
}
可以用 stat (win 下 _stat)函数直接得文件尺寸。
man 2 stat
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")
struct stat {
dev_t st_dev; /* ID of device containing file */
ino_t st_ino; /* inode number */
mode_t st_mode; /* protection */
nlink_t st_nlink; /* number of hard links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
dev_t st_rdev; /* device ID (if special file) */
off_t st_size; /* total size, in bytes */
blksize_t st_blksize; /* blocksize for filesystem I/O */
blkcnt_t st_blocks; /* number of blocks allocated */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last status change */
}
#include "stdafx.h"
#include "stdio.h"
#include <sys/stat.h>
#include <io.h>
#include <FCNTL.H>

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;
}

热心网友 时间:2023-10-05 13:43

c语言代码
long i;
FILE *pf;
pf = fopen("tt.txt","r");
fseek(pf, 0L, SEEK_END);
i = ftell(pf); //i 就是长度
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
乾隆小时候的书童是谁 下面对句式判断有误的一项是( ) A.当立者乃公子扶苏(判断句) ...为折线,把 折起,使平面 平面 ,连接 (1)求证: ;(2)求二面角 图中由线段OA、AB组成的折线表示的是小明步行所走的路程和时间之间的关... 动态图像粒度粒形分析仪 oppor9splus视频通话怎么开美颜 微信视频聊天怎么开美颜oppor9 谁家出售二手胶囊填充机NJP1200 NJP-1200A硬胶囊填充机仪器特点简介 NJP-1200A硬胶囊填充机仪器参数 jquery怎么获取file的大小 java 中怎么获取已经存在文件大小啊 CInternetFile怎么获取文件大小 c语言如何通过文件属性获取文件大小知道 js页面如何获取file文件大小 怎么样得到文件的大小?(DELPHI) 获取文件大小的几种方法 孕妇可以用八杯水防晒霜吗 雅丽洁八杯水化妆品孕妇能用吗 有谁买过上海财富兴园的房子,我听别人说那房质量不是很好,有谁买了的可以说说看吗 各楼层的单位面积质量分布包括构件自重吗 如何给快手里的手机号解绑啊! 墙体透寒如何解决?做外墙保温可以完全治愈吗?室内室外都应该做些什么?谢谢! 如何将快手手机号解绑呢? 房屋漏水维修什么样才算修好?多长时间内不漏才算好?有没有相关法律法规? 外墙渗水注浆有没有什么新材料? 上海装修投诉!! 外墙渗水可不可以在内维修 有谁知道上海市新建住宅,幕墙玻璃(渗水)保修期?幕墙玻璃属于外墙面吗?住户该向谁保修? linux 除了防火墙 怎么限制端口 每次换季收拾衣服你需要多久时间?有什么收纳技巧吗? 为什么现在物价上涨得那么厉害? 下半年物价确实进入上涨趋势,导致物价上涨的原因有哪些? 面对物价上涨,消费者应该怎么办? 韩国青椒一斤约27元,物价为何会出现上涨的趋势? 物价上涨会成为持续趋势吗? 为什么物价上涨是最终趋势 歌词开头是往事如风是什么歌 中国未来物价上涨趋势 如何看待物价上涨? 如果物价上涨了,能否推动工资上涨? 如何看待中国物价的上涨? 应如何看待中国目前物价大幅度上涨的现象?大神们帮帮忙 price是什么意思呀! price是什么意思呀! price意思 中国国航机票退票了,为什么现在钱还没有到账上 南方航空机票退款到支付宝多久到账 哪里有免费的药品代理商信息 踢足球的单词是什么?