如何直接从磁盘读取文件?

时间:2011-07-03 13:30:52

标签: cocoa macos file-io filesystems format

当然,可以使用Mac上可用的fopen或任何其他大量API来读取文件,但我需要做的是打开并读取磁盘上的每个文件并尽可能高效地执行此操作

所以,我的想法是使用/ dev / rdisk *(?)或/ dev /(?)来启动设备开头的文件。我会尽力按顺序读取文件,因为它们出现在磁盘上,最大限度地减少了设备的搜索量,因为文件可能会碎片化,并且可以将大块数据读入RAM,从而可以非常快速地处理它。 / p>

所以,我的主要问题是直接从我的设备读取数据时,如何确定哪些数据属于哪些文件?

我假设我可以从阅读文件目录开始,并且有一种方法可以确定磁盘上文件或文件片段的开始和停止位置,但我不知道在哪里可以找到有关如何获取的信息获得这样的信息......?

我正在运行Mac OS X 10.6.x,可以假设驱动器的标准设置。我可能会假设相同的信息也适用于由磁盘工具创建的标准的,只读的,未压缩的.dmg。

有关此主题的任何信息或要阅读的文章都会引起关注。

一旦理解了磁盘上文件的格式和布局,我无法想象我想要做什么特别困难。

谢谢

1 个答案:

答案 0 :(得分:0)

如评论中所述,您需要查看file system format,但是通过顺序读取原始磁盘,您(1)无法保证后续块属于同一文件,因此您可能需要无论如何都要寻求减慢直接从/ dev / device读取的优势,以及(2)如果你的磁盘只有50%已满,你仍然可能最终读取100%的磁盘,因为你将读取未分配的空间以及分配给文件的空间,因此可以直接从/ dev / device准备好。

然而,fsck和类似操作会执行此操作,但是他们会根据修复文件系统时可能出现的错误进行审核。