using System.IO;
using System.Threading;
public static class SRFileUtil
{
#if !UNITY_WEBPLAYER && !NETFX_CORE
public static void DeleteDirectory(string path)
{
try
{
Directory.Delete(path, true);
}
catch (IOException)
{
Thread.Sleep(0);
Directory.Delete(path, true);
}
}
#endif
///
/// Returns the human-readable file size for an arbitrary, 64-bit file size
/// The default format is "0.### XB", e.g. "4.2 KB" or "1.434 GB"
///
///
/// http://stackoverflow.com/a/281684/147003
///
public static string GetBytesReadable(long i)
{
var sign = (i < 0 ? "-" : "");
double readable = (i < 0 ? -i : i);
string suffix;
if (i >= 0x1000000000000000) // Exabyte
{
suffix = "EB";
readable = i >> 50;
}
else if (i >= 0x4000000000000) // Petabyte
{
suffix = "PB";
readable = i >> 40;
}
else if (i >= 0x10000000000) // Terabyte
{
suffix = "TB";
readable = i >> 30;
}
else if (i >= 0x40000000) // Gigabyte
{
suffix = "GB";
readable = i >> 20;
}
else if (i >= 0x100000) // Megabyte
{
suffix = "MB";
readable = i >> 10;
}
else if (i >= 0x400) // Kilobyte
{
suffix = "KB";
readable = i;
}
else
{
return i.ToString(sign + "0 B"); // Byte
}
readable /= 1024;
return sign + readable.ToString("0.### ") + suffix;
}
}