天天看點

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