Recovery of files on a FAT disk does depend on good directory files existing. If a directory file is broken, or has become corrupted, the files in that directory - or subdirectories of that directory, will be lost.
With CnW Recovery it is possible to scan the disk for all directory trees, and the extract the files from them. The option to use is 'Recover from directory stubs'. In this mode, the program will scan from the start of the disk to the end of the partition looking for any sector that is the start of a subdirectory. It will then extract all files from it. Where possible, it will also try and determine the parent of the directory, but this is not always possible, and in these cases, a new subdirectory will be created within the 'dirstub' directory. Each new directory will have a name such as dir258 or dir4398