Раз наблюдается интерес к BinarySize – чуть-чуть документации.
BinarySize – структура, хранящая размер в байтах и позваляющая получить отдельные составляющие (Bytes, Kilobytes etc), размер в байтах/килобайтах (TotalBytes, TotalKilobytes etc), отформатировать размер в строку и, наоборот, распарсить размер из строки.
Размер в байтах хранится как long, отрицательные значения не допускаются.
ToString():
Принимает строку формата и IFormatProvider. Начиная с v3.0.0.2 поддерживается ICustomFromatter - форматируйте на здоровье;)
Поддерживаются следующие строки форматирования:
- список форматов для размерностей в байтах/килобайтах и т.п., разделённый точкой с запятой (без пробелов). Используется максимально подходящая размерность (с v3.0.0.2 - последняя, если размерность binarySize больше максимальной заданной).
- желаемая размерность – одним символом (B,K,M,G,T,P,E) или двумя (BB,KB,MB,GB,TB,PB,EB).
- желаемая размерность;формат (см Custom Numeric Format Strings). Разделитель – ; (без пробелов).
Parse() и TryParse():
Принимают строку, содержащую размер, обязательно – IFormatProvider (используется для разбора численной части) и список суффиксов для каждой размерности (одной строкой (разделитель – ; без пробелов) или массивом). Parse более суров, и требует точного соответствия (с учётом регистра) суффикса (B/KB/MB etc) переданному значению. TryParse пытается прожевать всё.
Сампл:
Извиняюсь за поехавшее форматирование, никак не найду нормальный копипастер кода.
25 * BinarySize.Gigabyte
+ 55 * BinarySize.Megabyte
+ 122 * BinarySize.Kilobyte
+ 132);
Console.WriteLine(bs.ToString());
Console.WriteLine(bs.ToString("K"));
Console.WriteLine(bs.ToString("MB"));
Console.WriteLine(bs.ToString("#.# байт(а);#.# Kб;#.# Мб;#.# Гб"));
Console.WriteLine(bs.ToString("#.# байт(а);#,#.# Kб"));
Console.WriteLine(bs.ToString("M;#.# M"));
size = "1212121 Кб";
Console.WriteLine(BinarySize.Parse(
size,
CultureInfo.CurrentCulture,
"байт(а);Кб"));
Круто! Спасибо. Доки как раз не хватало. О части воможностей даж по исходникам не догадаешься )
ОтветитьУдалитьДык спрашивайте. Ёж птица ленивая, не пнёшь - не полетит.
ОтветитьУдалить