这是一个用C#编写的数据恢复工具,专门用于恢复被意外删除的文件。该工具通过直接访问磁盘扇区和解析NTFS文件系统来查找和恢复被删除的文件。
- NTFS文件系统支持: 专门为NTFS文件系统设计
- 低级磁盘访问: 直接读取磁盘扇区数据
- MFT记录解析: 解析主文件表(MFT)来查找被删除文件
- 智能文件过滤: 自动过滤系统文件和临时文件
- 恢复可能性评估: 评估每个文件的恢复成功率
- 批量恢复: 支持批量恢复多个文件
- 操作系统: Windows 10/11
- .NET版本: .NET 8.0 或更高版本
- 权限: 必须以管理员身份运行
- 文件系统: 仅支持NTFS文件系统
- 确保已安装 .NET 8.0 SDK
- 打开命令提示符或PowerShell
- 导航到项目目录
- 运行以下命令编译项目:
dotnet build --configuration Release
- 右键点击命令提示符或PowerShell
- 选择"以管理员身份运行"
- 导航到编译后的可执行文件目录
- 运行程序:
dotnet run
或者直接运行编译后的exe文件:
.\bin\Release\net8.0\DataRecovery.exe
- 启动程序: 以管理员身份运行程序
- 选择扫描: 选择菜单选项1"扫描被删除的文件"
- 输入驱动器: 输入要扫描的驱动器字母(如:C:)
- 等待扫描: 扫描过程可能需要几分钟到几小时,取决于磁盘大小
- 查看结果: 选择菜单选项3查看可恢复的文件列表
- 开始恢复: 选择菜单选项2恢复文件到指定目录
- 选项1 - 扫描被删除的文件: 扫描指定驱动器中的被删除文件
- 选项2 - 恢复指定文件: 将找到的文件恢复到指定目录
- 选项3 - 显示可恢复文件列表: 显示当前扫描结果
- 选项4 - 退出: 退出程序
工具使用Windows API直接访问磁盘扇区,绕过文件系统层。
- 读取NTFS启动扇区获取文件系统参数
- 定位并读取主文件表(MFT)
- 解析MFT记录中的文件信息
- 检查MFT记录的标志位识别被删除文件
- 解析文件名属性获取原始文件路径
- 解析数据属性获取文件内容位置
根据以下因素评估恢复可能性:
- 文件所占簇是否被覆盖
- 文件碎片化程度
- 删除时间长短
- 根据数据运行列表读取文件内容
- 重组文件数据并写入新位置
- 验证恢复文件的完整性
- 备份重要数据: 使用前请备份重要数据
- 停止写入操作: 发现文件被删除后立即停止对该磁盘的写入操作
- 及时恢复: 删除后越早恢复,成功率越高
- 仅支持NTFS: 不支持FAT32、exFAT等其他文件系统
- 需要管理员权限: 必须以管理员身份运行
- 无法恢复被覆盖文件: 已被新数据覆盖的文件无法恢复
- 性能影响: 扫描大容量磁盘可能需要较长时间
- 立即停止使用: 发现误删后立即停止对目标磁盘的使用
- 选择恢复位置: 将文件恢复到不同的磁盘上
- 检查恢复结果: 恢复后检查文件是否完整可用
- 专业工具: 对于重要文件,建议使用专业数据恢复服务
错误: "需要管理员权限才能运行此工具" 解决: 右键以管理员身份运行命令提示符
错误: "无法访问驱动器" 解决: 确认驱动器字母正确,磁盘未被其他程序占用
错误: "不是有效的NTFS文件系统" 解决: 该工具仅支持NTFS文件系统
- 关闭不必要的后台程序
- 使用固态硬盘可以提高扫描速度
- 避免在扫描期间进行其他磁盘操作
此工具仅供学习和研究使用。使用者需要:
- 了解数据恢复的风险
- 对使用结果承担全部责任
- 遵守当地法律法规
- 不用于非法用途
作者不对因使用此工具造成的任何数据丢失或损坏承担责任。
如遇到问题,请检查:
- 是否以管理员身份运行
- 目标磁盘是否为NTFS格式
- .NET 8.0是否正确安装
- 磁盘是否有物理故障
建议: 对于重要数据,建议寻求专业数据恢复服务的帮助。