/*隐藏功能(露出)光标在屏幕*/
show_hide_cursor ( 32, 0 );
gotoxy(15,18);cprintf("[ %d ] Files Recovered...",
num);
/* 搜索该行业的数据,直到终了盘 */
while(loop<Sectors_in_HDD2)
{
/* 经过一个部门(行业编号=回路)*/
readabsolutesectors ( 0x81, loop, 1, buffer );
gotoxy(19,16);cprintf("Scanning Sector Number = % ld",
loop);
if(kbhit())
{
show_hide_cursor ( 6, 7 ); /* 取回光标之前撤离计画
*/
exit(0);
}
/* 若发现指定头 */
if((memcmp ( buffer, header,7))==0)
{
/* 逻辑提供档案自动产生的档案名称挽救数据恢复 */
strcpy(filename, path);
itoa(num,temp,10);
strcat(filename, temp);
strcat(filename,".DOC");
start_file=loop; /* 档案部门开始 */
gotoxy(5,19);cprintf("File Found..., Saving As %s",
filename);
num++;
////////////// 立案条件密切 \\\\\\\\\\\\\\\\
file_size=0;
while( file_size<5000000)
{
loop++;
file_size+=512;
readabsolutesectors ( 0x81, loop, 1, buffer );
gotoxy(19,16);cprintf("Scanning Sector Number = % ld" ,
loop);
/* 如果档案大小尺寸最大达5mb */
if(file_size>=5000000)
{
end_file=loop; /* 截至档案部门 */
Recover_the_file();/* 写数据档案 */
break;
}
/* 若发现英尺的DOC格式 */
for(i=0;i<512;i++)
{
if( memcmp(buffer+i,DOC_footer,12)==0 )
{
end_file=loop; /* 截至档案部门 */
Recover_the_file();/* 写数据档案 */
break;
}
}
/* 若发现另一头 */
if( memcmp(buffer,header,7)==0 )
{
loop=loop-1;
end_file=loop; /* 截至档案部门 */
Recover_the_file();/* 写数据档案 */
break;
}
if(kbhit())
{
show_hide_cursor ( 6, 7 );
exit(0);
}
}
}
loop++;
} ////////而河套到此为止
/* 汇演讯息完成搜索回收 */ if(loop>=Sectors_in_HDD2 )
{
gotoxy(17,23);cprintf("The Saving of files in the Disk is
Completed !!");
gotoxy(17,24);cprintf("Press Any Key to Exit...");
show_hide_cursor ( 6, 7 );
getch();
}
}
评论代码:
几何结构使用功能利用中国科学院getdrivegeometry43支 获得多项功能0x48磁盘各种参数.
结构diskaddrpacket是磁盘地址包格式,以供readabsolutesectors功能.
功能getdrivegeometry(中国科学院径)是获得指定磁盘的物理参数,驾驶动力传动数目.
(烧焦)peekb(0x0040,0x0075)是用来寻找一些硬盘接上电脑 部分代表在记忆储存地点0040h:0075h抵消. 如果总人数不到两硬盘是十分错误的讯息,并显示出.
sectors_in_hdd2getdrivegeometry=(0x81); 发现身体的各种参数第二硬盘(0x81)和部门申报总数的磁盘.
如果声明(接入(径0)! =0)检查进出道路使用者所作. 如果目的地指南并不存在, 目的地是创造了一个层次,如果由于道路状况的检查,如果(mkdir(路)! =0)是非法的, 错误讯息显示出来.
档案名称自动产生档案数据挽救追回,造成这种前三字档案由邮电刊载strcat(路径"\\总站"); 功能. 这样做是为了避免重复地名档案目录的目的地. 于是收回档案档案名称格式刊载于"pttxxxxx.doc"
功能show_hide_cursor(320); 用来掩饰光标从屏幕那里show_hide_cursor(6、7); 为弥补光标回屏幕.
功能readabsolutesectors(0x81,环路、1、缓冲区); 其中第二条部门指定的机构数量硬盘物理环路.
若发现头档案,start_file=环路; start_file部门开始把一些档案被全部追回. 节目给予以下三个条件下,找到了档案部门结局:
- 如果档案大小尺寸最大达5mb
- 若发现英尺的DOC格式
- 若发现另一头
长整数end_file势将结束了档案部门人数end_file=环路; 如果有一列三个条件感到满意. 现在的行业数据, 从一些部门以部门人数end_filestart_file节省了档案的功能recover_the_file().
|
page 1 | 2 | 3 | 4 | 5 | 6 |
|
|
|