2012-01-26 29 views
5

Giả sử tôi có tệp: test.txt và tôi lưu nó trên đĩa cứng của mình.Tìm hiểu địa điểm trên đĩa cứng mà chương trình/tệp được cài đặt

Có cách nào để xác định những gì (vật lý) tại chỗ tệp được lưu trên đĩa cứng không?

Ví dụ trên véc tơ 12 trên đường đi 10 của đĩa cứng.

Tôi không biết liệu tôi có đúng thuật ngữ đúng không, nhưng tôi hy vọng bạn hiểu ý tôi.

Tôi muốn viết chương trình mà người dùng có thể trỏ đến một tệp và chương trình sẽ tìm ra nơi tệp nằm trên ổ cứng. Một cái gì đó giống như chống phân mảnh cũ (đó là Windows;)) nơi nó cho thấy những gì các phần của đĩa được sử dụng.

Điều này được gọi là gì và nó có thể đạt được không? (Tôi không tìm kiếm mã (mặc dù exmaples là ok ofc), nhưng thay vì cho dù đó là có thể)

P.S. Máy khách sẽ là Windows 7 (vì vậy hãy nghĩ NTFS nếu nó quan trọng).

+0

Tôi có thể hỏi ** tại sao ** bạn có cần biết rằng tệp x là "trên véc tơ 12 trên bản nhạc 10" không? – gdoron

Trả lời

1

Tôi khá chắc chắn rằng việc thực hiện loại đĩa cấp thấp i/o đó trong mã được quản lý sẽ khó ... tốt nhất. Dưới đây là ai đó đã xong một cái gì đó giống như nó:

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

Bất cứ điều gì bạn viết để làm một cái gì đó như thế này có được phần cứng phụ thuộc vào: trừ khi bạn biết những gì phần cứng bạn đang nói đến, bạn đã có không biết bao nó lưu trữ dữ liệu vật lý (ví dụ, một thẻ nhớ USB không có đĩa cứng, rãnh ghi hay các phần, cũng không quay. Tuy nhiên, đối với tất cả các ý định và mục đích, nó dường như là một đĩa).

Thông thường, bạn sẽ viết một số loại trình điều khiển thiết bị để thực hiện việc này. Liên kết này

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

có thể hữu ích.

0

Trong WebLog của Jeffrey Wall, bạn sẽ tìm thấy Defrag API C# wrappers. Phương pháp GetFileMap phương pháp của mình để đến gần với những gì bạn cần.

Các vấn đề liên quan