在Windows和C上恢复文件
Recovering Files on Windows and C
这次我试图在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文件系统具有驱动器字符的概念,并且所使用的文件路径定界符值是'/'
,而不是''
。
要恢复已删除的文件,您不能使用fopen
或fstream::open
,因为文件已删除。检查功能的返回值或测试流状态。
恢复已删除的文件的方法是:
- 将主文件表获取为原始数据。
- 搜索包含类似于已删除的字符串的记录文件名。
- 将主文件表中的条目更改为"未删除"。
- 将主文件表写回驱动器。
以上通常需要特定平台的API,该API在Linux和Windows平台上不同。
相关文章:
- 用C++将哈希表写入文件并从文件中恢复
- 在共享文件夹上恢复有效权利的问题
- QT在UI文件中恢复了我的更改
- 写入文本文件的数据部分损坏且无法恢复
- 崩溃调查,正在从.so文件中恢复符号
- 如果头文件被更改然后恢复,如何停止/欺骗 cmake 不重建
- 在Windows和C上恢复文件
- Flashdrive损坏的文件系统上的文本文件恢复
- 可视化解密 AES-196-ECB 文件 在C++,尝试加密文件,但在解密时无法恢复文件
- 以RAW形式恢复磁盘内容并转储为一个大二进制文件的应用程序
- 如何在C++中将精确的浮点值保存并恢复到可读文件中
- 可以将核心文件恢复到正在运行的程序中
- c++std::normal_distribution在从文件恢复时给出不一致的随机数
- 如何实现文件下载的暂停和恢复功能?
- 如何用C/C++读取/恢复大数据文件(SEGY格式)
- 如何恢复windows可执行文件的原始入口点
- 如何保存和恢复hdc文件
- 在Visual studio 2012中关闭后恢复cpp文件中的更改
- 恢复 wchar.h c++ 包含文件
- 从GCC 2.95生成的ELF二进制文件中恢复c++类声明