什么是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从哪里出来?
我只需要确切地说......我应该坚持哪种方法?
设置用户文件上传的限制
答案 0 :(得分:1)
Windows资源管理器显示兆字节,但会计算mebibytes因此,对于每个连续的单位除以1024是正确的。
磁盘上的大小包括由于技术原因必须成为文件一部分的空间,例如最后一页,如果它没有完全填满。如果它们存在,它还包括除$DATA
以外的其他流。它甚至可以显示完全适合其目录条目的文件的0字节。但作为一般规则,该数字将始终与文件内容大小不同。