using System; namespace NzbDrone.Core.Helpers { public class FileSizeFormatHelper { private const Decimal OneKiloByte = 1024M; private const Decimal OneMegaByte = OneKiloByte * 1024M; private const Decimal OneGigaByte = OneMegaByte * 1024M; public static string Format(long bytes, int precision) { if (bytes == 0) return "0B"; decimal size = Convert.ToDecimal(bytes); string suffix; if (size > OneGigaByte) { size /= OneGigaByte; suffix = "GB"; } else if (size > OneMegaByte) { size /= OneMegaByte; suffix = "MB"; } else if (size > OneKiloByte) { size /= OneKiloByte; suffix = "KB"; } else { suffix = " B"; } return String.Format("{0:N" + precision + "}{1}", size, suffix); } } }