獲取檔案大小(C語言)

2021-06-20 20:16:23 字數 1097 閱讀 1180

方法一:利用純c語言來獲取檔案大小

unsigned

long get_file_size(

const

char

*filename)

fseek( fp,

0l, seek_end);

size=ftell(fp);

fclose(fp);

return size;}

注:ftell函式返回檔案指標當前位置相對應檔案首的偏移位元組數,引數為檔案指標。

fseek函式用於移動檔案指標,第乙個引數是檔案指標,第二個引數是偏移量(正數表示正向偏移,負數表示負向偏移),第三個引數設定檔案從**偏移,有三個選擇:seek_set(檔案頭,其是常數0)、seek_cur(檔案當前位置,其是常數1)、seek_end(檔案尾,其是常數2)。

優缺點:好處是你只要會c語言,就能夠完全掌握而且十分容易理解這裡面的道理。確定是純c語言目前只能讀取不超過2g的檔案。所以對於超過2g的檔案,其返回值是不正確的。

方法二:利用系統函式獲取

筆者使用uinx/linux,所以此處就只寫這類平台上的檔案大小獲許方式了。在linux類平台上,每個被系統所管理的檔案都有乙個檔案屬性結構體(其中乙個屬性就是檔案大小)與其對應,這個結構體叫stat,其內容在  /sys/stat.h中:

stat ;

檔案的上述屬性,可以通過乙個stat函式來獲取。

stat函式宣告形式:

stat(

const

char

*restrict path,

struct stat *restrict buf);

第乙個引數是檔名,第二個引數是指向乙個stat結構的指標。

由此我們很容易寫出如下函式:

unsigned

long get_file_size(

const

char

*filename)

return

(unsigned

long

)buf.st_size;}

在進行大檔案處理時,顯然需要採取後者。

注:與stat函式類似的函式還有lstat函式、fstat 函式,具體用法請man。

C語言獲取檔案大小(長度)

實際開發中,有時候需要先獲取檔案大小再進行下一步操作。c語言沒有提供獲取檔案大小的函式,要想實現該功能,必須自己編寫函式。ftell 函式用來獲取檔案內部指標 位置指標 距離檔案開頭的位元組數,它的原型為 long int ftell file fp 注意 fp 要以二進位制方式開啟,如果以文字方式...

C 獲取檔案大小

在c語言中測試檔案的大小,主要使用二個標準函式。1.fseek 函式原型 intfseek file stream,long int offset,int origin 引數說明 stream,檔案流指標 offest,偏移量 orgin,原 始位置。其中orgin的可選值有seek set 檔案開...

C 獲取檔案大小

當然了都需要引入system.io這個命名空間 第乙個 public static long getdirectorylength string dirpath 獲取di中所有的資料夾,並存到乙個新的物件陣列中,以進行遞迴 directoryinfo dis di.getdirectories if...