今天写程序时,打算不断的将生成的图片文件放入一个文件夹中,但是每次当放入65534个文件后就无法再存入了,起初一位是程序的bug,后来才发现原来是文件系统对文件数目有限制。经过查阅发现
对于FAT16文件系统,可以保存的文件体积最大值是 4 GB - 1 byte (2^32 bytes - 1 byte);卷的最大体积是4GB;每个卷上最多可以保存的文件数量是65,536个 (2^16);根目录下可以保存的文件和文件夹数量最大值是512个(如果使用了长文件名,该数字还会减小)
对于FAT32文件系统, 可以保存的文件体积最大值是 4 GB - 1 byte (2^32 bytes - 1 byte);Windows自带的工具可以创建的卷的最大体积是32GB;每个卷中最多可以保存的文件数量是4,177,920个;一个特定文件夹中最多可以保存的子文件夹和文件的数量是65,534(如果使用了长文件名,那么该数字会减小)
对于NTFS文件系统,可以保存的文件的大小的最大值,理论上是16EB - 1 KB (2^64 bytes - 1 KB)(1EB=1024PB=1024TB=1024GB) ,实际实现过的最大值是16TB - 64 KB (2^44 bytes - 64 KB);卷的体积最大值,理论上可以达到2^64个簇 - 1个簇,实际实现过的最大值是2^56 TB - 64 KB ( 2^32 个簇 - 1个簇);每个卷可以包含的文件个数的最大值是4,294,967,295个 (2^32 - 1)
其中长文件和短文件名文件是指过去的DOS操作系统下,因为8.3格式的限制,文件主档名超过8字节或扩展名超过3字节的文件名,都被称为“长文件名”,一般在Windows下正常的文件名在DOS下会显示不正常。(如“Program files”资料夹可能会显示成“Progra~1”)在微软的Windows NT3.5出来之后,“长文件名”问题得以解决,现在的Windows XP系统一般可以输入400多个字符作为文件名,或者400个字符扩展名。{fact}
而我用的是FAT32系统,里面最多就允许65534个文件,了解了这些,我就知道了应该对这种大批量的文件系统上的文件存储要适度的建立子文件夹。