What's the max number of files that can be present in a directory on a NTFS volume? Same question for a directory for FAT32 volume?
After a quick search on google I found these:
- Maximum disk size: 2 terabytes
- Maximum file size: 4 gigabytes
- Maximum number of files on disk: 268,435,437
- Maximum number of files in a single folder: 65,534
- Maximum disk size: 256 terabytes
- Maximum file size: 256 terabytes
- Maximum number of files on disk: 4,294,967,295
- Maximum number of files in a single folder: 4,294,967,295
NTFS: There is no fixed limit. The maximum number of files is one upper limit. This limit is either 2^23-1 (according to many driver implementations) or 2^48 -1 (according to the MFT_REF structure). As you will have LARGE directories, you will see non-resident $BITMAP_ALLOCATION streams, a large INDEX stream. The index stream is essentially a B+ tree of file names.
FAT32: There is a difference between the root directory and sub-directories. The root has certain limitations.
With Windows Server 2012 R2, NTFS has exceeded 232 (slightly over 4 billion). I am currently running a document imaging server with almost 5 million files, as shown below. I am running NTFS and NOT ReFS, which I know can hold 264 files. NTFS on Windows 2012 R2 can hold more than 232 files.
PS E:\> chkdsk /v The type of the file system is NTFS. Volume label is Data. WARNING! F parameter not specified. Running CHKDSK in read-only mode. Stage 1: Examining basic file system structure ... 4992768 file records processed. File verification completed. 27 large file records processed. 0 bad file records processed.
The maximum number of files within a directory of a FAT file system is 65,536 if all files have short filenames (8.3 format). Short filenames are stored in a single 32-byte entry.
That means the maximum size of a direcotry (file) is 65,536 * 32 bytes, i.e. 2,097,152 bytes.
Short filenames in 8.3 format consists of 8 characters plus optional a "." followed by maximum 3 characters. The character set is limited.
If the filename is longer (Long File Name), it is spread over multiple 32-byte long entries. Each entry contains 13 characters of the filename. If the length of the filename is not a multiple of 13, the last entry is padded. Additionally there is one short file name entry for each file with long name.
2 32-byte entries are already taken by the "." and ".." entries in each directory (except root).
1 32-byte entry is taken as end marker?
So the actual maximum number of files in a directory depends on the length of the filenames.