This is a summary of a popular posting to Mark Russinovich’s technical blog (https://blogs.technet.com/markrussinovich/about.aspx), which covers topics such as Windows troubleshooting, technologies, and security. You can read the entire post at https://blogs.technet.com/markrussinovich/archive/2007/10/01/2087460.aspx
The other day a friend of mine called to tell me that he was having a problem copying pictures to a USB flash drive. He’d been able to copy more than two hundred files when he got the error message The directory or file cannot be created, after which he couldn’t copy any more files without getting the same message.
Unfortunately, the message provides no clue as to the underlying cause, and the dialog box explains that the error is unexpected and doesn’t suggest where you can find the “additional help” to which it refers. My friend was sophisticated enough to make sure the drive had plenty of free space, and he ran Chkdsk to check for corruption, but the scan didn’t find any problem. The error persisted on subsequent attempts to copy more files to the drive. At a loss, he turned to me.
I asked him to capture a trace with Process Monitor, a real-time file system and registry monitoring tool, which would reveal actual OS errors returned by the file system. He sent me the resulting Process Monitor PML file, which I opened on my own system. After setting a filter for the volume in question to narrow the output to just the operations related to the file copy, I went to the end of the trace to look back for errors. I didn’t have to look far; the last line appeared to be the operation causing the error.
I’d never seen or even heard of the error message “STATUS_CANNOT_MAKE.” At that point, I could have cheated and searched the Windows source code for the error, but I decided to see how someone without source access would troubleshoot the problem. A Web search took me to an old thread in a newsgroup for Windows file system developers. It told me that the problem might be that if you try to create a file in the root directory of a FAT12 system, there might not be enough available directory entries.
Sure enough, the volume was formatted with the FAT file system and the number of files on the drive, including those with long file names, could certainly have accounted for the use of all available 512 root-directory entries.
I had solved the mystery. I told my friend he had two options: He could create a subdirectory off the volume’s root, and copy the remaining files into it, or he could reformat the volume with the FAT32 file system, which removes the limitation on entries in the root directory.
One question remained, however. Why was the volume formatted as FAT instead of FAT32? The answer lies with both the USB drive makers and Windows format dialog. I’m not sure what convention the makers follow, but my guess is that many format their drives with FAT simply because it’s the file system guaranteed to work on virtually any OS, including those that don’t support FAT32, such as DOS 6.0 and Windows 95.
As for Windows, I would have expected it to always default to FAT32, but a quick look at the Format dialog box’s pick for one of my USB drives showed that I was wrong. After some research, I found that Windows defaults to FAT for non-CD-ROM removable volumes that are smaller than 4GB in size.
I’d consider this case closed, but I have two loose ends to follow up: See if I can get the error message fixed so that it’s more descriptive, and lobby to get the default format changed to FAT32. Wish me luck.