PeeHaa
PeeHaa

Reputation: 72691

Find out on what place on a harddisk a program / file is installed

Let's say I have a file: test.txt and I save it on my harddisk.

Is there a way to determine on what (physical) spot the file is saved on the hard disk?

For example on vector 12 on track 10 of the hard disk.

I don't know if I got the terminology right of the above, but I hope you get what I mean.

I want to write of program wheer the user can point to a file and the program will find out where the file is on the HDD. Something like the old defrag (it's Windows ;) ) where it shows what parts of the disk is in use.

What is this called and can it be achieved? (I'm not looking for code (although exmaples are ok ofc), but rather whether it is possible)

P.S. The client will be Windows 7 (so think NTFS if it matters).

Upvotes: 5

Views: 239

Answers (3)

adelphus
adelphus

Reputation: 10316

It is possible from C++, so with a little interoping, you should be fine. Look up FSCTL_GET_RETRIEVAL_POINTERS in the MSDN to get you started.

Upvotes: 0

Olivier Jacot-Descombes
Olivier Jacot-Descombes

Reputation: 112632

In Jeffrey Wall's WebLog you will find Defrag API C# wrappers. His GetFileMap method sems to come close to what you need.

Upvotes: 0

Nicholas Carey
Nicholas Carey

Reputation: 74335

I'm pretty sure that doing that sort of low-level disk i/o in managed code is going to be...difficult, at best. Here's somebody that's done something like it:

http://codebrainz.ca/index.php/2010/05/23/low-level-disk-io-in-managed-net/

Anything you write to do something like this has to be hardware-dependent: unless you know what hardware you're talking to, you've got no idea how it physically stores data (e.g., a USB memory stick has neither platters, tracks nor sectors, nor does it spin. Yet, for all intents and purposes, it appears to be a disk).

Normally, you'd write some sort of device driver to accomplish this. This link

http://en.wikibooks.org/wiki/Windows_Programming/Device_Driver_Introduction

might help.

Upvotes: 1

Related Questions