为什么会有 U 盘独个文件不可以超过 4GB 这种设定?

为什么会有 U 盘独个文件不可以超过 4GB 这种设定?

文件系统的限制问题,就不多说了,别的回答说了很多了,FAT32的格式限制,换NTFS或者exFAT就没问题了。

我展开说说这一段:

其实跟海淘不海淘没啥关系,你在国内买大容量SD卡,多数也都是exFAT而不是FAT32的。所以,核心问题就是为什么国内的U盘出厂的时候不格式化成exFAT。

一句话就原因是专利。

exFAT不是一个开放型的文件系统,它的专利持有者是微软,如果没有微软的授权,那么厂商是不能在出厂的时候把U盘格式化成exFAT格式的,虽然这种格式的规范都已经开放了,驱动都集成到Linux里了,但开放规范,不等于开放授权,硬件厂商要出厂时使用,还是需要交专利费的。我是写操作系统的,我们公司曾经想要集成exFAT,PoC代码都写好了,但因为专利问题,最后没有继续。

国内的U盘厂商,可能是没有拿到授权,或者没交专利费,所以出厂时只能以FAT32发布设备(NTFS更不可能,也是私有的),所以你在京东上买U盘,可以看到有些U盘有提示:

国外的厂商,如果交了授权费,那么自然就可以发布exFAT的设备。

SD卡,因为有SD卡联盟,已经把exFAT作为一个默认的文件系统(规范定义),应该是跟微软已经有协议了,所以SD卡,出厂时就是exFAT,也是没有问题的:

参考资料:

所以,这是一个钱(专利费、授权费)的问题。

题主既然对这个意见比较大,那么还是挑贵的买吧。

题外话:

FAT32是没有专利限制的。微软持有一个FAT32长名到短名映射的专利,这个不影响硬件厂商。

FAT32在Windows上只能在32G以下的盘上格式化,这是Windows的限制,不是FAT32本身的限制,理论上说,FAT32的分区最大容量可以接近2TB,我曾经在别的操作系统上格式化超过1TB的FAT32文件系统,在Windows上是可以用的。