回答
在我看来,最容易使用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. 将文件作为输入流读取时如何获取Excel文件名
- 2. 如何在Unix下将目录作为文件读取?
- 3. Java:如何将文件作为一组字节读取?
- 4. 是否可以将PDF文件作为txt文件读取?
- 5. 作为资源读取文本文件
- 6. 如何读取Hadoop Sequentil文件作为Hadoop作业的输入?
- 7. 如何将.txt文件转换为jar并将其读取
- 8. 如何读取R中的文本文件作为一行
- 9. 将文件输入作为C++中的操作码读取
- 10. 将输入作为文本文件中的值读取
- 11. 从dvd和cd复制并读取文件C#
- 12. Java读取csv文件作为矩阵
- 13. 将CSV文件读取为乱码
- 14. 将文件读取为正在上传
- 15. 如何在Unicode中读取Unicode文件作为Unicode字符串
- 16. 如何读取一个JPG文件作为PHP htaccess的
- 17. 如何让这个文件作为变量读取?
- 18. 如何读取bz2文件作为数组与PHP
- 19. 如何读取Excel文件作为数据帧
- 20. 如何在Java中将文件读取为无符号字节?
- 21. 如何将文件读取为列表/字典?
- 22. 如何将csv文件读取为“记录”数据类型?
- 23. 如何在Apache Beam中将文件读取为byte []?
- 24. 我如何将文件中读取的行转换为“_”?
- 25. 如何读取XML文件以将其作为标记挂载到Mapview Android?
- 26. 如何读取txt文件。?
- 27. 如何读取svg文件
- 28. 如何读取文件
- 29. 如何读取.inf文件?
- 30. 如何读取CSV文件?
-1你的问题似乎对我很模糊。更新你的问题,说明你想如何处理CD上的数据。 – 2012-02-06 11:46:03
@ Styne666:我怎样才能以这种或那种方式访问数据?我强烈的信念是通过逻辑文件访问它(整个物理媒体,我的意思是)要走的路。即使使用“数据”这个术语也是令人困惑的,这可能导致人们考虑文件系统。 – menjaraz 2012-02-06 11:56:05
这是我的观点。说“将CD作为文件读取”是含糊的。澄清这个问题,所以有**没有歧义**。 – 2012-02-06 12:15:46