在Windows和C上恢复文件

Recovering Files on Windows and C

本文关键字:恢复 文件 Windows      更新时间:2023-10-16

这次我试图在C中编写一个程序,该程序从磁盘中恢复已删除的文件,它可能是外部磁盘,我比Linux上使用过的想法,它是作为一种文件打开磁盘并扫描磁盘中所有内容的标题和文件的页脚,关键是我不确定Windows上是否允许在Windows上打开磁盘作为文件逻辑如何开发此程序,但我不确定如何在Windows上实现它,任何人都可以给我这一步?

我在linux上使用的代码打开磁盘,因为文件是:编辑:那是我正在使用的人的示例,这只是为了让您了解我在做什么,我使用的正确语法是下一个:

direccion = ui->linea->text().toLatin1().constData();
f = fopen(direccion,"rb");

我在Linux上使用了QT创建者,DiReccion变量是一个文本字段值,它包含通过打开QfileDialog的按钮函数的磁盘路径...

我也可以在Windows中使用它吗?

谢谢你..

"我在Linux上使用的代码打开磁盘为文件是:"

 File *f = fopen("E:", "rb");

我严重怀疑您是否曾经在任何Linux系统(或Windows)上使用此代码。
如果在任何字符串中显示的话,您都需要逃脱后斜线路径定界符:

FILE* f = fopen("E:\", "rb");
                // ^

您还为访问特定磁盘介绍的所有文件系统路径样式,都涉及访问Windows文件路径/磁盘。

没有Linux文件系统具有驱动器字符的概念,并且所使用的文件路径定界符值是'/',而不是''

要恢复已删除的文件,您不能使用fopenfstream::open,因为文件已删除。检查功能的返回值或测试流状态。

恢复已删除的文件的方法是:

  1. 将主文件表获取为原始数据。
  2. 搜索包含类似于已删除的字符串的记录文件名。
  3. 将主文件表中的条目更改为"未删除"。
  4. 将主文件表写回驱动器。

以上通常需要特定平台的API,该API在Linux和Windows平台上不同。