• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Получаем Размер Файла В Мб Или Гб

Mazahaka_lab Оффлайн

Mazahaka_lab

Принятый Кодер
Регистрация
25 Янв 2017
Сообщения
49
Баллы
50
Вот функция , которую я часто использую. Позволяет узнать размер файла в мб или гб . Сверял с проводником , показывает один в один . Можно использовать как для маленьких файлов так и для больших .
Код:
function GetFileSize (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;

function StrFormatByteSizeW(ASize: UInt64; szBuf: PWideChar; uiBufSize: UINT): PWideChar; stdcall; external 'shlwapi.dll';
function FmtFormatSize(const ASize: UInt64): String;
var
Buf: WideString;
begin
SetLength(Buf, 1024);
if StrFormatByteSizeW(ASize, PWideChar(Buf), Length(Buf)) <> nil then
Result := PWideChar(Buf)
else
Result := UIntToStr(ASize);
end;

Пример использования:
procedure TForm1.Button1Click(Sender: TObject);
begin
caption:='Размер файла - '+FmtFormatSize( GetFileSize('C:\DaRT10.iso'));
end;
 
Вверх Снизу