回答
在我看來,最容易使用THandleStream
而不是TFileStream
。像這樣:
procedure ReadFirstSector;
var
Handle: THandle;
Stream: THandleStream;
Buffer: array [1..512] of Byte;
b: Byte;
begin
Handle := CreateFile('\\.\C:', GENERIC_READ,
FILE_SHARE_READ or FILE_SHARE_WRITE, nil,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if Handle=INVALID_HANDLE_VALUE then
RaiseLastOSError;
try
Stream := THandleStream.Create(Handle);
try
Stream.ReadBuffer(Buffer, SizeOf(Buffer));
for b in Buffer do
Writeln(AnsiChar(b));
finally
Stream.Free;
end;
finally
CloseHandle(Handle);
end;
end;
請注意,當使用原始磁盤訪問時,您必須精確讀取多個扇區。我測試過的磁盤上的扇區大小爲512字節。我預計CD盤領域可能會有不同的規模。
所以模式是'\\。\ DRIVELETTER:',我說得對嗎?請給我一個額外的好處:我不是母語的人,如果它很混亂,你能否給我一個提示,以改善我的帖子(這是在發佈之後立即下線)? – menjaraz 2012-02-06 12:16:05
物理卷命名在這裏描述:http://msdn.microsoft.com/en-us/library/windows/desktop/aa363858.aspx#physical_disks_and_volumes我沒有理解你的帖子(我認爲)的問題。有時候,你會從不明白你的意思的人那裏得到讚揚,因爲他們可能缺乏一些知識。對此你可以做的不多。別擔心。我現在會給你一個upvote! – 2012-02-06 12:41:32
@大衛,當答案取決於未提供的信息時,有時候人們會對不完整的問題進行投票。 – 2012-02-06 13:11:58
- 1. 如何使用C#從DVD/CD讀取文件
- 2. 將文件作爲輸入流讀取時如何獲取Excel文件名
- 3. 引導程序如何讀取DVD(cd)?
- 4. Java:如何將文件作爲一組字節讀取?
- 5. 如何在Unix下將目錄作爲文件讀取?
- 6. C++如何附加ifstream將多個文件作爲一個大文件讀取
- 7. 是否可以將PDF文件作爲txt文件讀取?
- 8. 作爲資源讀取文本文件
- 9. 如何讀取Hadoop Sequentil文件作爲Hadoop作業的輸入?
- 10. 如何將.txt文件轉換爲jar並將其讀取
- 11. 如何讀取R中的文本文件作爲一行
- 12. 如何將JSON文件讀取至Java
- 13. 將excel列作爲文本讀取
- 14. 將DTD作爲參考文本讀取
- 15. 將文件輸入作爲C++中的操作碼讀取
- 16. 將輸入作爲文本文件中的值讀取
- 17. 從dvd和cd複製並讀取文件C#
- 18. 作爲字節數組讀取文件
- 19. Java讀取csv文件作爲矩陣
- 20. 讀取文件作爲字符串
- 21. 將ascii文件讀取爲二進制
- 22. 將文件讀取爲正在上傳
- 23. 將CSV文件讀取爲亂碼
- 24. 如何將SVG文件轉換爲Cinema 4D作爲矢量讀取的格式(如Adobe Illustrator ai文件)
- 25. 如何讀取輸入文件作爲參數在C + +
- 26. 如何讓這個文件作爲變量讀取?
- 27. 如何在離子2中讀取文件作爲流
- 28. 如何讀取一個JPG文件作爲PHP htaccess的
- 29. 如何讀取bz2文件作爲數組與PHP
- 30. 如何在C中讀取CSHTML作爲XML文件#
-1你的問題似乎對我很模糊。更新你的問題,說明你想如何處理CD上的數據。 – 2012-02-06 11:46:03
@ Styne666:我怎樣才能以這種或那種方式訪問數據?我強烈的信念是通過邏輯文件訪問它(整個物理媒體,我的意思是)要走的路。即使使用「數據」這個術語也是令人困惑的,這可能導致人們考慮文件系統。 – menjaraz 2012-02-06 11:56:05
這是我的觀點。說「將CD作爲文件讀取」是含糊的。澄清這個問題,所以有**沒有歧義**。 – 2012-02-06 12:15:46