天天看点

C语言 获取文件大小的方法

作者 :

卿笃军

获得文件大小需要用到2个函数:fseek()  ,  ftell()

fseek()函数:

原型:intfseek(file*stream,

long offset, int fromwhere);

参数:

         stream: 第一个参数stream为文件指针

       offset

: 第二个参数offset为偏移量,正数表示正向偏移,负数表示负向偏移

 fromwhere: 第三个参数origin设定从文件的哪里开始偏移,可能取值为:seek_cur、

seek_end 或 seek_set

seek_set: 文件开头

seek_cur: 当前位置

seek_end: 文件结尾

其中seek_set,seek_cur和seek_end依次为0,1和2.

简言之:

fseek(fp,100l,0);把文件内部指针移动到离文件开头100字节处;

fseek(fp,100l,1);把文件内部指针移动到离文件当前位置100字节处;

fseek(fp,-100l,2);把文件内部指针退回到离文件结尾100字节处。

参考文章:百度百科,fseek(),

ftell()函数:

原型: longftell(file*stream);

功能:返回当前文件位置,也就是说返回file指针当前位置。(也就是偏离文件首字符个数)

参考文章:百度百科,ftell(),

这里使用到 struct _stat结构体

st_atime  : 上次访问该文件的时间

st_ctime  : 文件创建时间

st_dev      : 文件所在磁盘

st_mtime :最后一次修改文件时间

st_size     : 文件大小

//...... 所有参数请参见msdn