2010-12-01 44 views
2

有没有办法读取文件的数据,但继续读取文件末尾的硬盘上的数据?对于正常的文件I/O,我可以使用fread(),但显然只能读到文件末尾。如果我在Windows计算机上添加我需要它,可能会有所帮助。有没有办法通过EOF读取HD数据?

我所有使用Google的搜索方法都是针对与EOF无关的主题(如正常I/O问题的人)提出结果。

我对此的推理是,我不小心删除了我正在处理的文本文件中的部分文本,这是一整天的工作。我搜索了一堆文件恢复的东西,但这一切似乎是恢复删除的文件,其中我的问题是该文件仍然存在,但没有它的一些信息,我希望有一些数据仍然直接存在在当前标记的文件结尾之后,在其他地方既没有碎片,也没有声明或以其他方式覆盖。由于我无法找到一个专门帮助解决这个问题的程序,所以我希望能够快速制作出一些内容(我明白,根据所涉及的内容,这可能不像重做工作那样可行,但我希望事实并非如此)。

据我所知,尽管我可能不是正确的(不确定,这就是为什么我要求帮助),但有三种可能性。我不得不查找允许直接访问整个硬盘的Windows API函数(类似于它的内存函数,也许我曾经使用过这些函数),并且扫描整个数据我仍然可以从文件访问,然后继续查看后面的内容。

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

最好的三种方式:只要打开文件进行写入访问,寻找到底,然后通过EOF写入一种方式来获得更多空间,但首先希望Windows在将数据交给之前不会清理数据我这样才能得到垃圾数据,这些数据是那个地方以前的数据,而这些数据实际上就是我要找的数据呢?如果这很简单,这将会非常棒,但是我害怕测试它,因为如果它失败了,我会失去数据,所以希望别人已经知道了。有问题的个人电脑运行Vista家庭高级版,如果任何人知道Windows的血淋淋的细节。

这三者中的任何一个看起来是否合理?无论是或否,我也开放(并渴望)其他建议,尤其是那些比我愚蠢的想法更好的建议,特别是如果他们具有指向特定功能以完成工作的方向。另外,如果其他人实际上已经听说过恢复程序不只是恢复已删除的文件,但实际上适用于这样的情况,而且是免费且值得信赖的,这也起作用。

在此先感谢您的帮助。

+0

我不确定,但[此链接](http://support.microsoft.com/kb/100027)可能会有所帮助。然而,这有点旧。 – 2010-12-01 01:24:09

回答

3

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

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

0

你的问题没有多大意义 - 根据定义,EOF之后文件中没有任何东西。通过您的进一步描述,看起来您想要读取文件最后一个字节后发生的任何事情,这可能是随机垃圾(未使用的空间)或可能是其他文件。但是在任何一种情况下,这不是'EOF'之后的数据,它是磁盘上不是文件一部分的正确数据。它甚至有可能是同一个文件的其他部分,如果文件系统恰巧以这种方式布置数据 - 某些文件系统以整个磁盘上看起来随机的方式分散块,并找出哪些字节属于哪些文件需要理解文件系统元数据。

+1

因此,我确保不要标题为“我可以通过EOF读取文件数据”,而是使用“我可以通过文件的EOF读取HD数据”。至于其余部分,是的,我知道,并且我在我原来的问题中自己提到了这些问题(引用,“我希望有一些数据直接存在于当前标记的文件结尾之后,并且既没有在其他地方也没有碎片声称或以其他方式覆盖“,我还提到希望如果我要获取垃圾数据,它不会被操作系统清除,而会成为HD的先前内容)。 – Loduwijk 2010-12-01 14:50:38

相关问题