Note, I am not doing a deep scan, so Recuva should only be looking in the MFT for entries marked deleted, right? If so, there should (at least in theory) be a way to specify a path instead of just a drive to return results for. The MFT still includes the names of all deleted files and directories, as I understand it. Apparently, Recuva is storing some bits of info for each file it finds in the MFT marked as deleted. That's the problem, since there are 14 million of them. If it would only store that info for the files in the path (i.e., the whole directory subtree) that I want, it should have enough memory ("only" 700K files). Filtering the list of files after it is built is no good, since it takes too much memory (apparently) to build the whole list.
I thought of trying to restore some files, even those I don't care about, to reduce the total number of deleted files. I am worried that this might cause some blocks on the disk to get written to, however. I suppose in theory, all it should have to do is unset the deleted bit in the MFT, but I'm not exactly sure how this works. If I instead restore the (unwanted) files to a different disk, it won't help, since they will still be marked deleted on the original disk. What would help is if there were some way to ignore those unwanted files.
Also, there is no way using attributes, dates, or filenames to get just the files I want. The only way is to specify the base directory (and yes, I want the whole subtree, not just one directory).
-Fran