我有一个字节的数组,如果我将这些字节写入文件,我想计算文件大小。是否可以不将文件写入光盘?
答案 0 :(得分:71)
array.Length
怎么样?看起来像一个字节大小。
答案 1 :(得分:43)
嗯,是的:
int length = byteArray.Length;
内存中的一个字节将是磁盘上的一个字节...至少在更高级别的文件系统术语中。您还需要考虑将使用多少个别块/集群(以及目录条目的开销),以及操作系统可能提供的任何压缩,但是问题是否是您所追求的并不清楚。 / p>
如果你真的做想知道“磁盘大小”而不是文件大小(就像Windows可以显示这两个数字一样)我怀疑你真的需要将其写入磁盘 - 然后使用Win32 API查找磁盘上的实际大小。
答案 2 :(得分:4)
Array.Length
会以字节为单位表示总大小。
考虑到簇大小,磁盘上的物理尺寸可能会多一点。
答案 3 :(得分:0)
前段时间,我发现它已被窃听,从那时起,我就喜欢这样做
public static string GetSizeInMemory(this long bytesize)
{
string[] sizes = { "B", "KB", "MB", "GB", "TB" };
double len = Convert.ToDouble(bytesize);
int order = 0;
while(len >= 1024D && order < sizes.Length - 1)
{
order++;
len /= 1024;
}
return string.Format(CultureInfo.CurrentCulture,"{0:0.##} {1}", len, sizes[order]);
}