The Road to FAT32 Support

Thursday, June 21st, 2007

SD-Card + MemoryStick (Teaser)Yesterday, our intern Sebastian Putscher had a breakthrough in prototyping FAT32 support. He was able to implement a basic FAT32 file-tracking algorithm which was able to reliably detect copies, renames and movements of files on a volume. What’s also working now is detection of copies between NTFS and FAT32 volumes.

The developed code is still in an early stage and by far not suitable for release, but it is a great breakthrough. I personally want to congratulate Sebastian for his success! The developed prototype now needs to be transformed into release-quality code, especially regarding CPU, memory and I/O load. This will take some time, but as you can see, we are clearly on the track.

So, why is FAT32 support that important? Well, because most external devices (USB memory sticks, SD-cards, just to name two) are formatted with FAT32 and not NTFS. Of course our goal here at tag2find is also to support those external media and support for FAT32 is important.

So, you may ask, why is FAT32 support so difficult to implement? As I have pointed out in some forum posts, the main problem is that there is no way of sticking additional data to FAT32 files. So we cannot reliably identify files once they are copied or moved around. For us, tag2find is not only a tool for finding things in a static environment, where files are left in the same place once they are tagged. We strongly believe, that the main advantage of tag2find is that you become independent of the location and name of a file. So for us it is important that we can track files as they move around and reflect those changes in realtime when performing a search.

A very basic approach where tags do not stick to a file, and the tags are lost once a file is renamed, moved, or copied could be implemented very fast. We don’t believe it is sensible, though. Tell us, if we are wrong!