For NTFS there is ntfsundelete in the ntfs-3g package. It works and it perfectly undeletes every file which has not been overwritten yet (either data or metadata).
Given my vague recollection of how FAT32 works, I'm not entirely sure if the same is even possible there at all.
There are "file carving" programs like photorec which simply scan the whole disk sector by sector and look for something that resembles a JPG file, MP3, DOC or anything. You can forget about recovering the original file name, location in the directory tree, etc.