Het schrijven van een programma voor de Ruwe Terugwinning van het Dossier
De codage van het programma voor de Ruwe Terugwinning van het Dossier van de dossiers van Microsoft Word (. de Uitbreiding van doc.) is daarna gegeven. De programmaonderzoeken naar de dossiers in de sectoren van de schijf en slaat automatisch het teruggekregen dossier door de naam van dossier op automatisch te creëren.
De weg die door de gebruiker wordt gespecificeerd wordt om de dossiers op te slaan gebruikt als bestemmingsweg om de teruggekregen gegevens op te slaan. Als de bestemmingsfolder niet bestaat, kan het programma tot de bestemming tot één folderniveau leiden.
Het hier gegeven terugwinningsprogramma steunt zelfs de grote grootteschijven aan onderzoek en krijgt de gegevens terug. Het programma is geschreven om de gegevens in de tweede fysieke harde schijf te zoeken.
/* Het ruwe Programma van de Terugwinning van het Dossier om de Dossiers van Microsoft Word terug te krijgen */
#include<stdio.h>
#include<dos.h>
/* Structuur dat door getdrivegeometry functie moet worden gebruikt
het gebruiken van de Uitbreiding van int. 13H, het Aantal van de Functie 0x48. */
struct geometry
{
unsigned int size ; /* (call) size of Buffer */
unsigned int flags ; /* Information Flags */
unsigned long cyl ; /* Number of Physical
Cylinders on Drive */
unsigned long heads ;/* Number of Physical
Heads on Drive */
unsigned long spt ; /* Number of Physical
Sectors Per Track */
unsigned long sectors[2] ; /* Total Number of
Sectors on Drive */
unsigned int bps ; /* Bytes Per Sector */
} ;
/* Structuur van het pakketformaat van het Adres van de Schijf, dat door de readabsolutesectorsfunctie moet worden gebruikt */
struct diskaddrpacket
{
char packetsize ; /* Size of Packet, generally 10H */
char reserved ; /* Reserved (0) */
int blockcount ; /* Number of Blocks to Transfer */
char far *bufferaddress ; /* address to Transfer
Buffer */
unsigned long blocknumber[2] ; /* Starting Absolute
Block Number */
} ;
///// Functie om de Parameters van de Aandrijving te krijgen \\\\\
unsigned long getdrivegeometry (int drive)
{
union REGS i, o ;
struct SREGS s ;
struct geometry g = { 26, 0, 0, 0, 0, 0, 0, 0 } ;
i.h.ah = 0x48 ; /* Function Number 0x48 */
i.h.dl = drive; /* Drive Number */
i.x.si = FP_OFF ( (void far*)&g ) ;
s.ds = FP_SEG ( (void far*)&g ) ;
/* Haal het gespecificeerde functieaantal van int. 13H aan
extension with Segment Register Values */
int86x ( 0x13, &i, &o, &s ) ;
printf("\n Head = %lu, Sectors Per Track = %lu, Cylinder = %lu\n",
g.heads,g.spt,g.cyl);
/* Als krijg ontbreekt de functie van de aandrijvingsmeetkunde, de Foutenmelding van de Vertoning En Uitgang */
if(g.spt==0)
{
printf("\n Get Drive Geometry Function Fails....");
printf("\n Extensions Not Supported, Press any Key to
Exit...");
getch();
exit(1);
}
return *g.sectors; /* Keer het Aantal van terug
Sectoren op Aandrijving */
}
unsigned long file_size=0, i=0;
unsigned long start_file=0, end_file=0;
unsigned long Sectors_in_HDD2=0, loop=0;
char buffer[512], filename[80], temp[8];
char path[80];
unsigned int result,num=0;
|
page 1 | 2 | 3 | 4 | 5 | 6 |
|
|
|