Uniquely identify file on Windows - C#/C++
===

I need to uniquely identify a file on Windows so I can always have a reference for that file even if it's moved or renamed. I did some research and found the question http://stackoverflow.com/questions/1866454/unique-file-identifier-in-windows with a way that uses the method GetFileInformationByHandle with C++, but apparently that only works for NTFS partitions, but not for the FAT ones.

I need to program a behavior like the one on DropBox: if you close it on your computer, rename a file and open it again it detects that change and syncs correctly. I wonder whats the technique and maybe how DropBox does if you guys know.

FileSystemWatcher for example would work, but If the program using it is closed, no changes can be detected.

I will be using C#.

Thanks,