数据恢复软件,一般用的是DDM(Direct Disk Manipulation,直接磁盘操作)的方法或通过驱动来控制磁盘直接对磁盘进行读写来实现数据的恢复。例如打开逻辑磁盘CreateFile+"\\.\C:"即可打开C盘,CreateFile+"\\.\PhysicalDrive0"可打开0号物理磁盘,也就是第1个磁盘,通常是系统先加载的那个磁盘,打开后,即可用ReadFile和WriteFile像读写文件一样对磁盘进行读写,不过得有权限,打开系统盘需要管理员(Administrator)权限。XP下需权限较低,Win7以上需要做些其它工作,尤其是写磁盘。知道了以上这些,我们就可以根据FAT系统的结构进行读取磁盘数据,从而完成基本的磁盘扫描器,恢复文件仍然是读取,强删的话也是比较容易的,只要改掉文件名标志,再清除FAT即可,隐藏和保护更容易,改文件属性即可,注意,不是改普通的属性,是特殊属性,代码中会提到。

好了,知道了这些知识,我们就能自己编写一个简单的FAT32下的数据恢复软件了,依此类推,之后可以再加上对NTFS和exFAT的支持,还可加上磁盘扇区扫描功能,磁盘编辑功能等,类似于WinHex那样。下面是一个典型的文件恢复程序,可对FAT32分区进行控制,能够遍历其所有文件,包括已删除文件,可以恢复已删文件,能够底层隐藏文件和保护文件、锁定磁盘等等,暂没有扫描簇功能,也没有读写物理磁盘功能,这些后续可以加上。以下是核心代码,完整代码请到作者博客下载。

代码太长,省略了,请到百度下载。

自己动手写数据恢复软件(FAT32下文件的遍历/隐藏/恢复/删除 )相关推荐

  1. 超级硬盘数据恢复软件 V2.7 绿色特别版[可以恢复被删除被格式化]

    超级硬盘数据恢复软件 V2.7 绿色特别版[可以恢复被删除被格式化] 软件大小: 1.87MB 软件语言: 简体中文 软件类别: 数据恢复 运行环境: WinXp, Win2003, Win2000, ...

  2. indesign选中不了图片删除_超级硬盘数据恢复软件的误删除文件恢复方式

    我们日常在使用电脑/U盘时,或许我们某个不经意的操作,会将我们的重要数据不小心删除,可能是个图片,或者汇报PPT文件,当然,在这类日常数据丢失时候,我们常常会想到使用 对硬盘/U盘误删除的数据进行恢复 ...

  3. 超强数据恢复软件,丢失文件无损找回! 值得收藏!

    身在江湖,想必人人都有过重要文件丢失的悲惨经历: 不小心误删文件,清空回收站之时顺手把文件也清除了,电脑崩溃文件消失,磁盘被格式化--桌面看了几遍,磁盘文件一个个打开查阅,回收站都翻到很久以前的了,还 ...

  4. 桌面图标文件夹图标隐藏恢复

    用windows 的命令提示符设置文件夹的属性 attrib 文件夹名称 +s +h (+S 是设置为'系统'属性  +h 是设置为隐藏属性) (同样 想去掉的话 就用 -s -h) 例如 C:\Us ...

  5. java 压缩二进制流_Java:自己动手写压缩软件,超详细解释(哈夫曼实现)

    三.哈夫曼编码生成步骤: ① 扫描要压缩的文件,对字符出现的频率进行计算. ② 把字符按出现的频率进行排序,组成一个队列. ③ 把出现频率最低(权值)的两个字符作为叶子节点,它们的权值之和为根节点组成 ...

  6. linux下写笔记软件,linux下安装一款笔记软件(为知笔记)

    今天突然想在ubuntu上安装一款跨平台(windows.linux.android)的笔记软件来做日常记录.文章记录以及网页收藏.原先并没有使用过类似的软件,只是见身边的很多人在使用印象笔记来做记录 ...

  7. windows10下文件被占用,不能删除

    本文借鉴: [1]https://jingyan.baidu.com/article/b7001fe183e8ea0e7382dd42.html [2]https://blog.csdn.net/le ...

  8. win10下文件名称过长,删除不掉怎么办

    Win10下文件名太长,导致文件无法删除怎么办? cmd打开命令窗口,使用命令删除,试了删除文件和文件夹的命令,还是删除不掉. 最终解决方法:(利用压缩软件) 1)右键该文件,然后在弹出菜单中选择&q ...

  9. php遍历删除目录下文件,PHP遍历删除文件夹已经文件内的所有文件

    PHP删除文件或者文件夹是必不可少的,PHP的实现代码如下: 示例代码: function deldir($dir) { //先删除目录下的文件: $dh=opendir($dir); while ( ...

最新文章

  1. tf.placeholder函数说明
  2. 用linux集成电路版图设计,集成电路版图设计 [陆学斌 主编] 2012年版
  3. jQuery在绑定事件时如何传入参数
  4. MySQL Processlist--常见线程状态
  5. 照片处理和分享的思路
  6. Oracle就业课第六课之游标和触发器
  7. strictmath_Java StrictMath ulp()方法与示例
  8. mysql spring隔离级别_MySQL事务与Spring隔离级别实现
  9. 角谷猜想(信息学奥赛一本通-T1086)
  10. 机构研究显示iPhone 12 Pro Max是美国最受欢迎5G手机
  11. 集团公司(嵌入ETL工具)财务报表系统解决方案
  12. 各版本Sql Server下载地址全
  13. 炼数成金数据分析课程---10、python中如何画图
  14. PHP 初学者资源收集
  15. Logistic回归及梯度上升算法
  16. extern 头文件 定义声明
  17. DMG计算机,dmg文件怎么打开?dmg是什么意思?
  18. 调用远程摄像头进行人脸识别_怎样快速搭建人脸识别通道?
  19. 任正非,“血洗”华为
  20. 介绍一下什么是静态独享代理ip。

热门文章

  1. Win7系统与路由器也有不兼容?
  2. 视频编解码的编码结构
  3. python爬虫学习系列(2)--获取表情包
  4. “武林人士”测试简介
  5. 安装cartographer时遇到编译问题
  6. 又一编程语言问世了,还要成立开发者基金会!
  7. 2021年全球壁挂式书柜行业调研及趋势分析报告
  8. 自动打卡python脚本_python实现腾讯文档自动打卡教程
  9. 七夕连奥运冠军都开始虐狗!
  10. 《文言文复兴系列 3》(江湖一剑客)