protected static string BytesToString(long bytes)
{
string[] suffix = { ControlResources.Byte, ControlResources.Kilobyte, ControlResources.Megabyte, ControlResources.Gigabyte };
if (bytes <= 0)
return "0 " + suffix[0];
int place = Convert.ToInt32(Math.Min(3, Math.Floor(Math.Log(bytes, 1024)))); // maxes out at GB
double num = Math.Round(bytes / Math.Pow(1024, place), 1);
return string.Format("{0} {1}", num, suffix[place]);
}