# 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, 1, 2 или 3 (K,M,G,T), например, `FFFS_MINSIZEINDEX|1` - "размер как минимум в мегабайтах".

Dest
Указатель на строку, куда будет помещён результат преобразования. Установите `Dest = NULL` для того, чтобы узнать необходимый размер буфера в символах.
DestSize
Максимальное количество символов, которое можно поместить в `Dest`, с заключительным нулём.

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

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

### Примечание

### Пример