在項目中開發中,有時候需要將文件的尺寸進行控制,例如需要將文件的尺寸指定為字節,TB等。現在提供一個方法,實現將指定文件的尺寸,
提供:"字節", "KB", "MB", "GB", "TB"等尺寸的控制選項,一下方法代碼可以在項目中直接使用,提高項目的開發效率。
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
public static class FsLibValueExtract
{
readonly static string[] SizeDefinitions = { "字節", "KB", "MB", "GB", "TB" };
/// <summary>
/// 控制尺寸顯示轉換上限
/// </summary>
readonly static double SizeLevel = 0x400 * 0.9;
/// <summary>
/// 轉換為尺寸顯示方式
/// </summary>
/// <param name="size">大小</param>
/// <returns>尺寸顯示方式</returns>
public static string ToSizeDescription(this double size)
{
return ToSizeDescription(size, 2);
}
/// <summary>
/// 轉換為尺寸顯示方式
/// </summary>
/// <param name="size">大小</param>
/// <param name="digits">小數位數</param>
/// <returns>尺寸顯示方式</returns>
public static string ToSizeDescription(this double size, int digits)
{
var sizeDefine = 0;
while (sizeDefine < SizeDefinitions.Length && size > SizeLevel)
{
size /= 0x400;
sizeDefine++;
}
if (sizeDefine == 0) return size.ToString("#0") + " " + SizeDefinitions[sizeDefine];
return size.ToString("#0." + string.Empty.PadLeft(digits, '#')) + " " + SizeDefinitions[sizeDefine];
}
/// <summary>
/// 轉換為尺寸顯示方式
/// </summary>
/// <param name="size">大小</param>
/// <returns>尺寸顯示方式</returns>
public static string ToSizeDescription(this ulong size)
{
return ((double)size).ToSizeDescription();
}
/// <summary>
/// 轉換為尺寸顯示方式
/// </summary>
/// <param name="size">大小</param>
/// <param name="digits">小數位數</param>
/// <returns>尺寸顯示方式</returns>
public static string ToSizeDescription(this ulong size, int digits)
{
return ((double)size).ToSizeDescription(digits);
}
/// <summary>
/// 轉換為尺寸顯示方式
/// </summary>
/// <param name="size">大小</param>
/// <returns>尺寸顯示方式</returns>
public static string ToSizeDescription(this long size)
{
return ((double)size).ToSizeDescription();
}
/// <summary>
/// 轉換為尺寸顯示方式
/// </summary>
/// <param name="size">大小</param>
/// <param name="digits">小數位數</param>
/// <returns>尺寸顯示方式</returns>
public static string ToSizeDescription(this long size, int digits)
{
return ((double)size).ToSizeDescription(digits);
}
/// <summary>
/// 轉換為尺寸顯示方式
/// </summary>
/// <param name="size">大小</param>
/// <returns>尺寸顯示方式</returns>
public static string ToSizeDescription(this int size)
{
return ((double)size).ToSizeDescription();
}
/// <summary>
/// 轉換為尺寸顯示方式
/// </summary>
/// <param name="size">大小</param>
/// <param name="digits">小數位數</param>
/// <returns>尺寸顯示方式</returns>
public static string ToSizeDescription(this int size, int digits)
{
return ((double)size).ToSizeDescription(digits);
}
}
以上只是文件尺寸進行一個算術運算,實現以上所述的功能。