上のクロスプラットフォームな方法でファイルサイズを取得、私はファイルサイズを知るために、このrutineを持っている:どのようにデルファイXE2
(http://delphi.about.com/od/delphitips2008/qt/filesize.htmに基づく)
function FileSize(fileName : String) : Int64;
var
sr : TSearchRec;
begin
if FindFirst(fileName, faAnyFile, sr) = 0 then
{$IFDEF MSWINDOWS}
result := Int64(sr.FindData.nFileSizeHigh) shl Int64(32) + Int64(sr.FindData.nFileSizeLow)
{$ELSE}
result := sr.Size
{$ENDIF}
else
result := -1;
FindClose(sr) ;
end;
しかし、これは、この警告を与える:
[DCC Warning] Funciones.pas(61): W1002 Symbol 'FindData' is specific to a platform
を
これを行うには、クリーンなクロスプラットフォームの方法が存在するのだろうかと思います。私はTFileクラスをチェックして、それを見つけられませんでした...
FindFirstがファイルサイズ情報を取得する方法であるように見えます。それは直感的ではなく、常に正確ではない。 –