You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.7 KiB
C#
74 lines
1.7 KiB
C#
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
|
|
|
|
/// <summary>
|
|
/// 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"
|
|
/// </summary>
|
|
/// <param name="i"></param>
|
|
/// <remarks>http://stackoverflow.com/a/281684/147003</remarks>
|
|
/// <returns></returns>
|
|
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;
|
|
}
|
|
}
|