Delphi獲取檔案的大小(實際 物理)

2021-09-08 10:52:40 字數 1176 閱讀 9579

源:獲取檔案的大小(實際&物理)

class

function tduofile.getfilesize(const

afile: tfilename): int64;

varsr:tsearchrec;

begin

if findfirst(afile,faanyfile and (not fadirectory),sr) = 0

then

result :=sr.size

else

result := 0

; findclose(sr);

//這個函式是新api

//另一種寫法

//var hh:thandle;dwsizelow,dwsizehigh:cardinal;

//begin

//hh := fileopen(pchar(opendialog1.filename),fmopenread);

//dwsizelow := getfilesize(hh,@dwsizehigh);

//result := dwsizehigh shl 32 + dwsizelow;

//closehandle(hh);

//end;

end;

class

function tduofile.getfilesizecompressed(const

afile: tfilename): int64;

begin

int64rec(result).lo :=getcompressedfilesize(pansichar(afile),@int64rec(result).hi);

//另一種寫法

//var dwsizelow,dwsizehigh:cardinal;

//begin

//dwsizelow := getcompressedfilesize(pansichar(afile),@dwsizehigh);

//result := dwsizehigh shl 32 + dwsizelow;

//end;

end;

進過測試,

如果是通常的檔案,並沒有發現這兩個函式的不同之處。

都是返回「屬性/大小」。

但是如果是壓縮過的檔案,那麼後者返回的是「屬性/占用空間」。

Delphi 中獲取檔案大小

大概有這些方法可以獲得檔案大小 filesizebyname 需要引用idglobal單元 getfilesize filesize 不能獲得正在使用的檔案大小 fileseek tfilestream.size 下面是使用例子 1.filesizebyname 需要引用idglobal單元 beg...

Delphi中獲取檔案大小

大概有這些方法可以獲得檔案大小 filesizebyname 需要引用idglobal單元 getfilesize filesize 不能獲得正在使用的檔案大小 fileseek tfilestream.size 下面是使用例子 1。filesizebyname 需要引用idglobal單元 beg...

Delphi 獲取指定目錄下檔案的大小

這個函式可以獲得指定目錄下所有的檔案路徑 名稱,能夠遞迴搜尋 procedure findallfile const dir string list tstringlist var hfindfile thandle findfiledata win32 find data fullname,fna...