public static string ToFriendlyString(this long size, int digits = 2, Dictionary <SizeUnit, string> unitNames = null) { decimal displaySize = size; int maxIndex = Enum.GetValues(typeof(SizeUnit)).Length - 1; int unitIndex = 0; while ((displaySize >= 1000) && (unitIndex < maxIndex)) { displaySize /= 1024; unitIndex++; } SizeUnit unit = (SizeUnit)unitIndex; return(UnitFormat.FormatWith(Math.Round(displaySize, digits), unit.ToDisplayName(unitNames))); }