The venerable fat16 and fat32 file systems are still in widespread use today. Devices such as digital cameras, satellite navigation systems, memory sticks and mp3 players all make use of FAT.
The files in a FAT file system are arranged in a strict order. This can affect the way that some devices behave. For example, some MP3 players will play songs only in the order in which they are arranged on the device, rather than the more convenient alphabetical or alphanumeric order. Music players that use USB memory sticks and in-car USB systems can be affected in the same way. The only way to get the songs to play in a more sensible order is to sort the directory (folder) in which they are located.
One approach would be to create a new folder, move all of the files into it in the order you want them to play, and then delete the old folder. The new folder could then be renamed to the old folder name. If your mp3 player or USB stick contains more than just a few songs though, this won’t be practical. If you have access to a Linux system, a script or perl program could be written for the job. But there’s no need. A program called fatsort already does the job perfectly.
On the Linux system (Fedora here), install fatsort:
yum install fatsort
Attach your USB stick or mp3 player to the computer. If it mounts, unmount it, because fatsort works only on unmounted file systems:
Now run the program:
fatsort -c /dev/sdb1
which should complete in a minute or so. All of the folders on the device will be sorted into alphanumeric order. The “-c” indicates case insensitivity. Remove the USB stick or MP3 player. You should find that all songs now play in the expected order. It worked well with my in-car system, which will play songs from a USB stick, and now does so in a sensible order.
Programs like fatsort are also available for Windows.
Unix file systems, eg Solaris ufs or Linux ext4, have an physical order for files too. That is to say, the file names occur in a given order within the directory object. The arrangement order can be seen with the ls -f command. It is not the order of the inode numbers, though it can be similar in recently built systems, as can be seen with the command ls -1fi, the “i” adding inode numbers and the “1” restricting output to one column.