2009年5月29日

Delphi 使用 Windows API FindFirstFile 取得超過 2G FILE SIZE


function FileSize(const FileName: String): Int64;
var
LHFile: THandle;
lpFindFileData: TWin32FindData;
PSIZE: PULargeInteger;
begin
Result := 0;
LHFile := Windows.FindFirstFile(PChar(FileName), lpFindFileData);
if (LHFile <> INVALID_HANDLE_VALUE) then
begin
Windows.FindClose(LHFile);
PSIZE := @Result;
PSIZE.LowPart := lpFindFileData.nFileSizeLow;
PSIZE.HighPart := lpFindFileData.nFileSizeHigh;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
FileName: string;
begin
FileName := 'FileName'; // FileName
ShowMessage(IntToStr(FileSize(FileName)));
end;

沒有留言:

網誌存檔