- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用de.waldheinz.fs与 Android jobb tool 相关的库,我发现了一些看起来很奇怪的事情。在文件 de.waldheinz.fs.fat.SuperFloppyFormatter.java:304 中我找到了这个:
public static FatType fatTypeFromSize(long sizeInBytes) {
final long sizeInMb = sizeInBytes / (1024 * 1024);
if (sizeInMb < 4) return FatType.FAT12;
else if (sizeInMb < 512) return FatType.FAT16;
else return FatType.FAT32;
}
FatType
这是枚举 de.waldheinz.fs.fat.FatType
,但这里的实现非常简单。我的问题确实与 else if (sizeInMB < 512) return FatType.FAT16;
行有关,但是FAT12的检查同样麻烦。
FAT12 驱动器支持的最大大小为 32 MB,FAT16 驱动器支持的最大大小为 2 GB。为什么这个库对 4 MB 和 512 MB 施加这些限制?看来作者的这一说法可能是基于对 FAT12 和 FAT16 工作原理的相当幼稚的理解。 < 4MB 当然是 <= 4095 KB。 4095 是十六进制的 0xFFF,或者是二进制的 1111 1111 1111...这实际上代表 12 位...
我承认我自己对 FAT 知之甚少(我仍然没有完全理解扇区与簇、如何计算总可用大小等)。也许更好地理解这些事情的人可以确认是否有技术原因说明这种实现应该被认为是“正确的”?因为它看起来像是我的问题的确切原因。
谢谢!
最佳答案
FAT12 只有 16MB,而不是 32MB。
作者可能正在检查以下簇的数量:
对于 FAT12:4086(簇大小 0.5 - 4 KB)
对于 FAT16:65526(簇大小 2 - 32 KB)(不清楚为什么他要检查 512)。
对于 FAT32:~268,435,456(簇大小 4 - 32 KB)
详细信息请参见:http://www.pcguide.com/ref/hdd/file/partSizes-c.html
报告该库中的问题;)
关于java - SuperFloppyFormatter 对于超过 512 MB 的任何内容都会返回 FAT32?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18924872/
我正在使用de.waldheinz.fs与 Android jobb tool 相关的库,我发现了一些看起来很奇怪的事情。在文件 de.waldheinz.fs.fat.SuperFloppyForm
我是一名优秀的程序员,十分优秀!