Articles in categories

Articles

Make a filesize readable

I was looking for how to make a filesize in kb readable, in other words format it so it would show the size in KB, MB, GB, TB and so on. I've found many different solutions on Google, but I took this one. 

public string GetSizeReadable(long i)
{
	string sign = (i < 0 ? "-" : "");
	double readable = (i < 0 ? -i : i);
	string suffix;
	if (i >= 0x1000000000000000) // Exabyte
	{
		suffix = "EB";
		readable = (double)(i >> 50);
	}
	else if (i >= 0x4000000000000) // Petabyte
	{
		suffix = "PB";
		readable = (double)(i >> 40);
	}
	else if (i >= 0x10000000000) // Terabyte
	{
		suffix = "TB";
		readable = (double)(i >> 30);
	}
	else if (i >= 0x40000000) // Gigabyte
	{
		suffix = "GB";
		readable = (double)(i >> 20);
	}
	else if (i >= 0x100000) // Megabyte
	{
		suffix = "MB";
		readable = (double)(i >> 10);
	}
	else if (i >= 0x400) // Kilobyte
	{
		suffix = "KB";
		readable = (double)i;
	}
	else
	{
		return i.ToString(sign + "0 B"); // Byte
	}
	readable = readable / 1024;

	return sign + readable.ToString("0.## ") + suffix;
}

The actual article can be found here.