14th
Фев

Получить размер файла

Posted by Chas under Топик-обзор

dolphin705:

var
  x: integer;
  f: textfile;
  f1 : file;
begin
  assignfile(f1,‘file.txt’);
  Reset(f1,1);
  x:=filesize(f1);
  closefile(f1);

  assignfile(f,‘file.txt’);
  append(f);
  WriteLn(f,inttostr(x));
  closefile(f);

Serge_Bliznykov:
Кстати, данный код не сможет прочитать размер файла больше 2 Гб (а это в настоящее время вполне даже актуально, хотя, автору топика это вряд ли… ).

вот код, избавленный от этого недостатка:

function SizeFile(s: string): int64;

var

  SearchRec : _WIN32_FIND_DATAA;

begin

  if FileExists(s) then begin

      FindFirstFile(pchar(s), SearchRec);

      result := SearchRec.nFileSizeHigh;

      result := result shl 32;

      result := result + SearchRec.nFileSizeLow

  end

  else

    result := -1;

end;

или, можно так:

function GetFileSize2(namefile: string): Int64;

var InfoFile: TSearchRec;

    AttrFile: Integer;

    Error: Integer;

begin

 AttrFile := $0000003F; // Any file

 Error    := FindFirst(namefile, AttrFile, InfoFile);

 if Error <> 0 then result := -1

  else begin

   Result := InfoFile.FindData.nFileSizeHigh;

   Result := Result shl 32;

   Result := Result or InfoFile.FindData.nFileSizeLow

  end;

 FindClose(InfoFile)

end;

ну и для преобразования int64 -> строку:

function Int64ToStr(i64: int64): string;

begin

  str(i64, result)

end;

Тема на форуме

Похожие статьи

Теги: |