【问题标题】:Is there a way to read HD data past EOF?有没有办法通过EOF读取高清数据?
【发布时间】:2011-05-18 05:53:19
【问题描述】:

有没有办法读取文件的数据,但在文件末尾继续读取硬盘上的数据?对于普通的文件 I/O,我可以只使用 fread(),但很明显,它只会读取到文件的末尾。如果我补充说我需要在 Windows 计算机上使用它可能会有所帮助。

我所有的谷歌搜索都是为了找到与 EOF 无关的主题的结果,例如人们遇到正常 I/O 问题。

我这样做的原因是我不小心删除了我正在处理的文本文件中的部分文本,而这是一整天的工作。我用谷歌搜索了一堆文件恢复的东西,但似乎都是关于恢复已删除的文件,我的问题是文件仍然存在但没有它的一些信息,我希望其中一些数据仍然直接存在在当前标记的文件结尾之后,既不会在其他地方分段,也不会被声明或以其他方式覆盖。由于我找不到专门帮助解决此问题的程序,我希望我能迅速弥补它(我明白,根据所涉及的内容,这可能不像重做工作那样可行,但是我希望不是这样)。

据我所知,虽然我可能不正确(不确定,这就是我寻求帮助的原因),但有 3 种可能性。

三者中最差的:我必须查找允许直接访问整个硬盘驱动器的 Windows API 函数(可能类似于它的内存函数?我有经验的那些)并扫描整个事物以获取我仍然可以访问该文件,然后继续查看它之后的内容。

第二:我可以得到一个指向文件的指针,然后我仍然必须获得对 HD 的原始访问,但至少有一个指向文件的指针?

三者中的佼佼者:只需打开文件以进行写访问,寻找到最后,然后写一条通过 EOF 的方式来申请更多空间,但首先希望 Windows 在将数据交给我之前不会清理数据这样我就得到了垃圾数据,这些数据是那个地方以前的数据,实际上是我正在寻找的数据?如果它那么简单,那就太棒了,但我不敢测试它,因为如果它失败我会丢失数据,所以希望其他人已经知道了。如果这对任何了解 Windows 血腥细节的人来说很重要的话,有问题的 PC 正在运行 Vista Home Premium。

这三个中的任何一个看起来都合理吗?无论是或否,我也乐于接受(并且渴望)其他建议,尤其是那些比我愚蠢的想法更好的建议,尤其是如果它们带有用于完成工作的特定功能的方向。

另外,如果其他人真的听说过一个恢复程序,它不仅可以恢复已删除的文件,而且实际上可以在这种情况下工作,而且它是免费且值得信赖的,那也可以。

提前感谢您的帮助。

【问题讨论】:

  • 我不确定,但this link 可能会有所帮助。不过有点旧了。

标签: c windows hard-drive data-recovery


【解决方案1】:

您应该获得一个实用程序来扫描硬盘驱动器的可用空间并从中恢复数据,例如PhotoRecforemost。但是请注意,如果您一直在使用该机器(甚至是网页浏览,这将在您的缓存中创建文件),则数据可能已经被覆盖。 不要将您的恢复工具保存在同一个硬盘上,甚至使用同一台 PC 下载它们;从另一台计算机获取它们并将它们保存到 USB 设备,然后从该设备运行它们。

至于您问题的概念性内容,文件是抽象对象。除了(取决于实现)可能直到文件系统/磁盘“块大小”的下一个倍数之外,没有数据“过去 eof”之类的东西。也有可能(很可能)您的编辑器通过截断文件并从头开始编写所有新内容来“保存”文件,这意味着新旧存储之间不一定有任何对应关系。

【讨论】:

    【解决方案2】:

    您的问题没有多大意义——根据定义,EOF 之后的文件中没有任何内容。根据您的进一步描述,您似乎想要读取文件使用的最后一个字节之后发生在磁盘上的任何内容,这可能是随机垃圾(未使用的空间)或其他文件。但无论哪种情况,这都不是“EOF 之后的数据”,它只是磁盘上不属于文件的数据。如果文件系统碰巧以这种方式布置其数据,它甚至可能是同一文件的其他部分——一些文件系统以看似随机的方式将块分散在磁盘上,并确定哪些字节属于哪些文件需要了解文件系统元数据。

    【讨论】:

    • 因此我确保不将我的问题命名为“我可以读取 EOF 之后的文件数据吗”而是使用“我可以读取文件的 EOF 之后的高清数据吗”。至于其余的,是的,我知道,我自己在最初的问题中提到了这些问题(引用,I'm hoping some of that data still exists directly after the currently marked end of file and is neither fragmented elsewhere or already claimed or otherwise overwritten,我还提到希望,如果我要获取垃圾数据,它不会被OS,而是 HD 的先前内容)。
    猜你喜欢
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 2014-06-28
    • 2022-10-17
    相关资源
    最近更新 更多