Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Вывести размер файла строкой

Delphi , Файловая система , Файлы

Вывести размер файла строкой

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{************************************************ 
  Formats a partition-/file size 
  Gibt eine Partitions-/Dateigro?e im Klartext aus 
*************************************************}

 uses
   SysUtils,...;


 function BytesToStr(const i64Size: Int64): string;
 const
   i64GB = 1024 * 1024 * 1024;
   i64MB = 1024 * 1024;
   i64KB = 1024;
 begin
   if i64Size div i64GB > 0 then
     Result := Format('%.2f GB', [i64Size / i64GB])
   else if i64Size div i64MB > 0 then
     Result := Format('%.2f MB', [i64Size / i64MB])
   else if i64Size div i64KB > 0 then
     Result := Format('%.2f KB', [i64Size / i64KB])
   else
     Result := IntToStr(i64Size) + ' Byte(s)';
 end;

Привет! Я переведу контент на русский язык.

Функция BytesToStr, определенная в коде Delphi, принимает целочисленное значение Int64, представляющее размер файла или раздела в байтах, и возвращает строковое представление этого размера в формате, понятном человеку.

Вот шаг за шагом, как функция работает:

  1. Функция использует три константные переменные: i64GB, i64MB и i64KB, которые представляют гигабайты, мегабайты и килобайты соответственно, каждое из которых преобразовано в байты (1024^3, 1024^2 и 1024).
  2. Функция принимает параметр Int64 i64Size, представляющий размер файла или раздела.
  3. Она проверяет, является ли размер файла больше нуля, если его делить на i64GB. Если это так, функция форматирует строку с результатом, округленным до двух десятичных знаков с помощью функции Format, и устанавливает возвращаемое значение в эту строку, префиксированную символами 'GB'.
  4. Если размер файла не больше или равен i64GB, но больше нуля, если его делить на i64MB, функция форматирует строку с результатом, округленным до двух десятичных знаков, префиксирует ее символами 'MB' и возвращает.
  5. Если размер файла не больше или равен i64MB но больше нуля, если его делить на i64KB, функция форматирует строку с результатом, округленным до двух десятичных знаков, префиксирует ее символами 'KB' и возвращает.
  6. Если размер файла меньше i64KB, функция просто конвертирует значение в строку с помощью функции IntToStr и добавляет к ней ' Byte(s)'.

Функцию можно использовать следующим образом:

var
  fileSize: Int64;
begin
  fileSize := 123456789; // Замените на свой размер файла в байтах
  writeln(BytesToStr(fileSize));

Это выведет что-то вроде '117.4 MB'. Если вам нужно отображать результат в другой формате или с иной точностью, вы можете изменить функцию соответствующим образом.

Вот альтернативное решение с использованием более современного и компактного способа форматирования строк:

function BytesToStr(const i64Size: Int64): string;
begin
  if i64Size >= 1024 * 1024 * 1024 then
    Result := Format('%g GB', [i64Size / (1024 * 1024 * 1024)])
  else if i64Size >= 1024 * 1024 then
    Result := Format('%g MB', [i64Size / (1024 * 1024)])
  else if i64Size >= 1024 then
    Result := Format('%g KB', [i64Size / 1024])
  else
    Result := IntToStr(i64Size) + ' Byte(s)';
end;

В этом варианте функция Format используется с глобальным форматным указателем (%g) для автоматического управления десятичными знаками и округлением. Это делает код более компактным и легким в обслуживании.

Программный код на Delphi предназначен для форматирования размера файла в строку, отображая информацию о мегабайтах, гигабайтах или байтах в зависимости от величины указанного размера.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Файлы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-24 19:54:41/0.0036289691925049/0