Из моего блога :
static string ReadableFileSize(double size, int unit=0)
{
string[] units = { "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" };
while(size >= 1024) {
size /= 1024;
++unit;
}
return String.Format("{0:0.#} {1}", size, units[unit]);
}
Хотя это не совсем то, что вы просили. Если у вас есть long
, представляющее число bytes
, то все, что вам нужно сделать, это разделить на 1024. 1 КиБ = 1024 B.
Я также написал версию JavaScript , которая немного более надежна, если кому-то это нужно.