Maximum number of files in a FAT system

12,236

MS FAT-based filesystems have a limit to the number of files that can be stored in the root directory (a few hundred IIRC), and because of the way long filenames are stored file/directory names longer then the traditional "8+3" wil consume more then on of the entries in the limit.

For subdirectories FAT32 allows ~65,000 entries per sub-directory (again, long filenames take more than one slot), I'm not sure about the older FAT16. Other filesystems have similar limits (ext2/3 has a 32,000 entry limit without certain tweaks) some do not or effectively do not (NTFS allows ~4,000,000,000). You will hit performance issues on some filesystems long before you hit the limit of entries per directory, as some search directories linearly (FAT* do, ext2 does, ext3 does unless you specific indexed directories, ext4 and NTFS do indexed directories by default IIRC).

Share:
12,236

Related videos on Youtube

Simon Sheehan
Author by

Simon Sheehan

Updated on September 17, 2022

Comments

  • Simon Sheehan
    Simon Sheehan almost 2 years

    Is it true that in FAT filesystems the maximum number of files per filesystem equals the number of entries in the FAT table. And is it also true that in indexed filesystems the maximum number of files per filesystem equals the number of indexblocks – 1.

    I'm reading some stuff and am trying to get a good understanding of it.

  • Phil
    Phil over 14 years
    I think it's 256 or 512 files in root, but I also think that's a FAT16 limit.
  • David Spillett
    David Spillett over 14 years
    Looks like you are right. en.wikipedia.org/wiki/Fat16 suggests that 512 entries is used by default for large filesystems (presumably less for floppy sized ones - I certainly remember hitting the limit before a few hundred files), and in FAT32 the root directory is a directory table file just like any other sub-directory so has the same ~65000 entry limit.
  • user1686
    user1686 over 12 years
    The ~32k limit in ext2/3 only applies to subdirectories, not to entries (which are limited to 1.3e20). Specifically, 32k is a limit of hardlinks a single directory or file can have.