بما أنه هناك احتمالات عدة لوحدة القياس التي ستظهر،"B", "KB", "MB", "GB" سنعمل على إنشاء مصفوفة تحتوى على هذه الوحدات، على أن يتم تحديد الوحدة المناسبة مع حجم الملف. ليكون الكود بالشكل التالي: string[] sizes = { "B", "KB", "MB", "GB" };
double len = new FileInfo(filename).Length;
int order = 0;
while (len >= 1024 && order + 1 < sizes.Length) {
order++;
len = len/1024;
}ثم تحديد format أو شكل ظهرو الحجم: string result = String.Format("{0:0.##} {1}", len, sizes[order]);يمكن أيضا استعمال الصيغة التالية، والتي لا تختلف كثيرا عن الأولى:static String BytesToString(long byteCount)
{
string[] suf = { "B", "KB", "MB", "GB", "TB", "PB", "EB" }; //مختلف الوحدات للقياس حجم الملف
if (byteCount == 0)
return "0" + suf[0];
long bytes = Math.Abs(byteCount);
int place = Convert.ToInt32(Math.Floor(Math.Log(bytes, 1024)));
double num = Math.Round(bytes / Math.Pow(1024, place), 1);
return (Math.Sign(byteCount) * num).ToString() + suf[place];
}أمثلة لما يمكن الحصول عليه: Console.WriteLine(BytesToString(9223372036854775807)); // 8EB نحصل على
Console.WriteLine(BytesToString(0)); // 0B نحصل على
Console.WriteLine(BytesToString(1024)); // 1KB نحصل على
Console.WriteLine(BytesToString(2000000)); // 1.9MB نحصل على
Console.WriteLine(BytesToString(-9023372036854775807)); // -7.8EB نحصل على