Tôi có rutine này để biết filesize:Làm thế nào có được filesize trong cross-platform cách trên delphi xe2
(Dựa trên 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;
Tuy nhiên, điều này đưa ra cảnh báo này:
[DCC Warning] Funciones.pas(61): W1002 Symbol 'FindData' is specific to a platform
Tôi tự hỏi liệu có tồn tại một cách đa nền tảng sạch để thực hiện việc này hay không. Tôi kiểm tra lớp TFile và không tìm thấy nó ...
Nó làm tôi thấy rằng FindFirst dường như là cách để nhận thông tin về kích thước tệp. Đó là truy cập trực quan và thậm chí không phải luôn luôn chính xác. –