FormatFileSize

Функция FSF.FormatFileSize форматирует число (размер файла) по заданным условиям.
size_t WINAPI FormatFileSize(
  unsigned __int64 Size,
  intptr_t Width,
  FARFORMATFILESIZEFLAGS Flags,
  wchar_t *Dest,
  size_t DestSize
);

Параметры

Size
Число для форматирования.
Width
Ширина поля (примером может служить ширина колонки в панели). При значении равном 0 подразумевается - "сколько получится". Отрицательное значение ширины позволяет выравнивать по левому краю.
Flags
Формат представления, может быть комбинацией следующих значений (тип FARFORMATFILESIZEFLAGS):
ФлагОписание
FFFS_COMMAS Вставлять разделитель между тысячами - "12 345".
FFFS_FLOATSIZE Показывать размер в виде десятичной дроби, используя наиболее подходящую единицу измерения, например 0,97 К, 1,44 М, 53,2 Г.
FFFS_SHOWBYTESINDEX Добавлять суффиксы: B - для байт, K - килобайт, M - мегабайт, G - гигабайт, T - терабайт, P - петабайт, E - эксабайт
FFFS_ECONOMIC Экономичный режим, не показывать пробел перед суффиксом размера файла (т.е. "0.97K").
FFFS_THOUSAND Использовать 1000 вместо 1024 в качестве делителя.
FFFS_MINSIZEINDEX Использовать минимально допустимый индекс при форматировании. Индекс указывается в младшем байте и может иметь значение от 0 до 5 (K,M,G,T,P,E), например, FFFS_MINSIZEINDEX|1 - "размер как минимум в мегабайтах".
Dest
Указатель на строку, куда будет помещён результат преобразования. Установите Dest = NULL для того, чтобы узнать необходимый размер буфера в символах.
DestSize
Максимальное количество символов, которое можно поместить в Dest, с заключительным нулём.

Возвращаемое значение

Необходимый размер буфера Dest в символах.

Примечание

Пример