2012-01-26 24 views
5

Digamos que tengo un archivo: test.txt y lo guardo en mi disco duro.Averigüe en qué lugar de un disco duro está instalado un programa/archivo

¿Hay alguna manera de determinar en qué lugar (físico) se guarda el archivo en el disco duro?

Por ejemplo, en el vector 12 en la pista 10 del disco duro.

No sé si obtuve la terminología correcta de lo anterior, pero espero que entiendas lo que quiero decir.

Quiero escribir sobre el programa donde el usuario puede señalar un archivo y el programa descubrirá dónde está el archivo en la HDD. Algo así como la antigua defrag (es Windows;)) donde muestra qué partes del disco están en uso.

¿Cómo se llama y se puede lograr? (No estoy buscando el código (aunque mis argumentos son buenos), sino más bien si es posible)

P.S. El cliente será Windows 7 (así que piense en NTFS si es importante).

+0

¿Puedo preguntar ** por qué ** necesitas saber que el archivo x está "en el vector 12 en la pista 10"? – gdoron

Respuesta

1

Estoy bastante seguro de que hacer ese tipo de disco de bajo nivel de E/S en código administrado va a ser ... difícil, en el mejor de los casos. Aquí hay alguien que ha hecho algo semejante:

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

Cualquier cosa que se escribe en hacer algo como esto tiene que ser dependiente del hardware: a menos que sepa qué tipo de hardware que está hablando, no tienes idea de cómo almacena datos físicamente (p. ej., una memoria USB no tiene platos, pistas ni sectores, ni gira). Sin embargo, para todos los efectos, parece ser un disco).

Normalmente, debe escribir algún tipo de controlador de dispositivo para lograr esto. Este enlace

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

podría ayudar.

0

En WebLog de Jeffrey Wall encontrará Defrag API C# wrappers. Su método GetFileMap parece estar cerca de lo que necesita.

Cuestiones relacionadas