views:

192

answers:

3

I've been using some data recovery tools like Diskinternals Uneraser. I've been wondering how we can recover things on a hard drive programmatically?

Is there specific disc access mechanics, patterns, API to use? Is it something I can do in C#?

A: 

As soon as you have arcane knowledge of file system internals and direct access to the hardware, you will be able to recover things on a hard drive, even in C#.

Speaking for NTFS, there is no "deleted items" API, AFAIK. Besides from "Deleted Items", that is. ;-)

Tomalak
can you give more details on how to get this knowledge?
J.J.
What can I say other than "read a lot of stuff on the matter"? The question was quite general, so is the answer.
Tomalak
A: 

Here's something. Scroll down to "Physical disk and volumes"

David Grant
+2  A: 

There is a nice tool, PhotoRec, available for Linux and Windows, that can recover deleted files regardless of the filesystem they were located on. It's open source, so you can find out what APIs it uses.

dmityugov