【易语言源码分享】【数据恢复】文件误删除找回
相信很多小伙伴也会出现误删除文件的情况,终于有大佬在论坛里分享了源码;

1.原理
读取NTFS设备的MFT表,然后根据表内提供的信息找到相对应的文件名,文件名长度,文件总大小,数据所在位置。
2.MFT表
MFT表(Master File Table,主文件表)是NTFS文件系统中的一个重要数据结构,用于存储NTFS分区中所有文件和目录的元数据信息。在NTFS文件系统中,每个文件和目录都对应着MFT表中的一个条目,这个条目包含了文件或目录的名称、大小、创建时间、修改时间、权限等重要信息,同时还包含了指向文件数据的指针和指向其他相关MFT表项的指针。 MFT表是NTFS文件系统的核心之一,它的结构和布局对于整个文件系统的性能和稳定性都非常重要。MFT表通常会预留一定的空间,用于存储新创建的文件和目录的元数据信息,如果这个空间不足,系统就需要对MFT表进行扩展,这会降低文件系统的性能。此外,MFT表中的条目也可能会被删除或者损坏,这会导致文件系统无法正确访问文件和目录,需要进行数据恢复操作。 在进行数据恢复或者磁盘分析时,读取MFT表可以帮助我们了解分区中的所有文件和目录的信息,包括已删除的文件和目录。因此,MFT表是NTFS文件系统分析和数据恢复的重要工具。
3.读取MFT表
打开NTFS分区 使用操作系统或者第三方工具打开NTFS分区,可以通过挂载分区或者使用磁盘镜像文件的方式打开分区。

定位MFT表 在NTFS分区的第一个扇区(即第0扇区)中,包含了分区的引导扇区和NTFS引导扇区。NTFS引导扇区中包含了MFT表的位置和大小信息。具体来说,可以读取引导扇区中的BPB(Bios Parameter Block)数据结构中的BPB_MFT_LCN和BPB_MFTMirr_LCN字段,分别表示MFT表的第一个扇区的逻辑簇号和镜像MFT表的逻辑簇号。

读取MFT表 根据MFT表的位置和大小信息,可以读取整个MFT表。MFT表中的每个条目都是一个记录长度为1024字节的数据结构,其中包含了文件或目录的元数据信息。可以按照MFT表中的顺序读取每个条目,并解析其中的元数据信息。 需要注意的是,MFT表中可能会存在未分配的条目或者损坏的条目,需要进行错误处理。同时,MFT表的读取需要特权访问,需要使用管理员或超级用户权限进行操作。

注意源码中演示的搜索,其中读取的后缀源码中默认为.jpg格式的图像文件,修改为其他的也可以进行过滤,如果全部恢复则不需要这个匹配规则。
最后还是得感谢大佬:By 美夜赤月
希望大家以后都能用上免费的恢复软件🤗
论坛帖子地址:https://bbs.125.la/thread-14726294-1-1.html