什么是windows转换为字节到mb?

时间:2017-02-03 10:26:43

标签: c# windows filesize fileinfo

什么是Windows转换以将字节转换为MB? 我的文件夹的计算大小是(1,568,653,060字节)

// 1.
// Get array of all file names.
string[] a = Directory.GetFiles(path, "*.*");

// 2.
// Calculate total bytes of all files in a loop.
long b = 0;
foreach (string name in a)
{
// 3.
// Use FileInfo to get length of each file.
  FileInfo info = new FileInfo(name);
  b += info.Length;
}

//b = 1568653060

//However, googles conversion...convert 1568653060 bytes to mb
//returns 
//1568653060 b = 1568.65306 mb

但根据我的计算

// Return total size in MB int
float mbValue =  (b / 1024f) / 1024f;
//mbValue = 1495.98413
//should return 1496 mb

但窗户返回......
大小:1.45 GB(1,568,653,060字节)
磁盘大小:1.46 GB(1,568,686,080字节)
//将此转换为MB可以得到1460 MB ....

其他36Mb从哪里出来?
我只需要确切地说......我应该坚持哪种方法? 设置用户文件上传的限制

1 个答案:

答案 0 :(得分:1)

Windows资源管理器显示兆字节,但会计算mebibytes因此,对于每个连续的单位除以1024是正确的。

磁盘上的大小包括由于技术原因必须成为文件一部分的空间,例如最后一页,如果它没有完全填满。如果它们存在,它还包括除$DATA以外的其他流。它甚至可以显示完全适合其目录条目的文件的0字节。但作为一般规则,该数字将始终与文件内容大小不同。

相关问题