友好显示字节长度:SPUtility.FormatSize
作者:杨柳@水杉网络
基本信息
程序集
Microsoft.SharePoint.dll
命名空间
Microsoft.SharePoint.Utilities
类型
静态方法
介绍
在SharePoint开发过程中,如果使用过SPFile.Length属性,应该知道这个值表示一个文档的字节数,显示给用户的时候,我们希望提供给用户一个更加利于理解的单位,比如KB,MB,GB等。此方法就是帮助我们把一个long数值转换为友好可读字节长度格式。
方法
位于Microsoft.SharePoint.Utilities.SPUtility类,具体描述如下:
//格式化long数组为可读字节长度格式。
public static string FormatSize(long cbSize)
{
if (cbSize > 0x400L)
{
double num;
if (cbSize > 0x40000000L)
{
num = Math.Round((double) (Convert.ToDouble(cbSize) / 1073741824.0), 1);
return SPResource.GetString("FileSizeGB", new object[] { num.ToString() });
}
if (cbSize > 0x100000L)
{
num = Math.Round((double) (Convert.ToDouble(cbSize) / 1048576.0), 1);
return SPResource.GetString("FileSizeMB", new object[] { num.ToString() });
}
num = Math.Round((double) (Convert.ToDouble(cbSize) / 1024.0), 1);
return SPResource.GetString("FileSizeKB", new object[] { num.ToString() });
}
if (cbSize > 0L)
{
return SPResource.GetString("FileSizeSmall", new object[0]);
}
return SPResource.GetString("FileSizeKB", new object[] { "0" });
}
使用场景
正如上面的介绍,获取一个SharePoint文档长度后,需要将数值转换为可读格式,此时就可以使用此方法。
测试代码
以下代码在SharePoint Powershell命令行工具中执行
#####
# 输出结果:< 1 KB
#####
[Microsoft.SharePoint.Utilities.SPUtility]::FormatS
ize(1024)
#####
# 输出结果:1 KB
#####
[Microsoft.SharePoint.Utilities.SPUtility]::FormatS
ize(1024 + 1)
#####
# 输出结果:1024 KB
#####
[Microsoft.SharePoint.Utilities.SPUtility]::FormatS
ize(1024 * 1024)
#####
# 输出结果:1 MB
#####
[Microsoft.SharePoint.Utilities.SPUtility]::FormatS
ize(1024 * 1024 + 1)