Schreiben eines Programms für rohe Akte Wiederaufnahme
Die Kodierung des Programms für rohe Akte Wiederaufnahme der Microsoft Wordakten (.DOC Verlängerung) ist zunächst gegeben worden. Das Programm sucht nach den Akten in den Sektoren der Scheibe und speichert die zurückgewonnene Akte automatisch, indem es automatisch den Namen der Akte verursacht.
Der Weg, der vom Benutzer spezifiziert wird, um die Akten zu speichern, wird als Bestimmungsortweg benutzt, um die zurückgewonnenen Daten zu speichern. Wenn das Bestimmungsortverzeichnis nicht besteht, kann Programm den Bestimmungsort bis zu einem Verzeichnisniveau herstellen.
Das Wiederaufnahme Programm, das hier gegeben wird, stützt sogar die großen Scheiben, um die Daten zu suchen und zurückzugewinnen. Das Programm ist geschrieben worden, um die Daten in der zweiten körperlichen Festplatte zu suchen.
/* rohe Akte Wiederaufnahme Programm, zum des Microsoft Word zurückzugewinnen ordnet ein */
#include<stdio.h>
#include<dos.h>
/* Structure to be used by getdrivegeometry function
using INT 13H Extension, Function Number 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 */
} ;
/* Structure of Disk Address packet format, to be used
by the readabsolutesectors Function */
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 */
} ;
///// Function to get Drive Parameters \\\\\
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 ) ;
/* Invoke the specified function number of INT 13H
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);
/* If get drive Geometry function Fails, Display Error Message and Exit */
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; /* Return The Number of
Sectors on Drive */
}
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 |
|
|
|