我以KB格式存储数据库中的文件。我尝试将文件信息的文件长度返回转换为KB,如下所示。
FileInfo FileVol = new FileInfo(DownloadPath);
int SizeinKB = (int)(FileVol).Length / 1024 ;
如果从DB返回的文件大小和以KB为单位的大小值相等,那么只有我的代码允许从DownloadPath安装软件。但是我总是以KB为单位的值(小于KB的值)(总是1 KB)。我有什么问题。
请帮忙解决。
答案 0 :(得分:3)
您可以使用此方法计算文件大小:
static readonly string[] SizeSuffixes =
{ "bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" };
static string SizeSuffix(Int64 value)
{
if (value < 0) { return "-" + SizeSuffix(-value); }
int i = 0;
decimal dValue = (decimal)value;
while (Math.Round(dValue / 1024) >= 1)
{
dValue /= 1024;
i++;
}
return string.Format("{0:n1} {1}", dValue, SizeSuffixes[i]);
}
然后在计算大小后,您可以使用if - else检查来解决您的问题
答案 1 :(得分:1)
FileInfo FileVol = new FileInfo(DownloadPath);
string fileLength = FileVol.Length.ToString();
string length = string.Empty;
if (FileVol.Length >= (1 << 10))
length= string.Format("{0}Kb", FileVol.Length >> 10);
长度=&GT;将产生文件的KB。