方法一:利用純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...